Systems and Methods for Capturing Event Feedback

ABSTRACT

Methods, systems and computer readable media are described herein for capturing event feedback and providing a representation of feedback results generated using the feedback indicia. The representation of feedback results involves configuring a transmission module of the computing device to synchronize to an event record representing an event; receiving feedback indicia associated with an event at the computing device; operating a data processor of the computing device to assemble a feedback indicia array using the feedback indicia; and providing the event feedback to a remote data processing module. The capturing of event feedback involves storing a plurality of different event records for a plurality of different events; for each event record, receiving a plurality of feedback indicia arrays; and for each event record determining an aggregate feedback result array from the plurality of feedback indicia arrays.

FIELD

The described embodiments relate to systems and methods for capturingevent feedback and, in particular, to systems and methods for capturingevent feedback from event observers using devices.

BACKGROUND

Events, such as for example artistic performances, political debates,competitions, and movies, may attract an audience of event observers.Event performers may have an active role in the event and eventobservers may have a passive role in the event. Event observers may wantto provide their opinion of the event in the form of feedback. Feedback,in the form of applause or jeers, may only be received during liveevents and may be disruptive and sometimes unwelcome. When eventfeedback is received from event performers, event organizers, and eventobservers it may be difficult to accurately associate received feedbackto specific portions of the event that the feedback pertains to.

Neilson ratings assess whether a television show was watched or not, butmay not discern between high points and low points in a television show.Some polling methods require observers to be located at one location,such as for example a studio environment, to score an event. Often insuch cases, the number of observers will be limited. Some pollingmethods require observers to wait until the end of the event tounderstand how other observers liked or disliked the entire event. Anumerical scale may be used to rate an event but such numerical feedbackis typically received at the end of the event and a scalar numberrepresenting the average value is recorded for the event as a whole.Some event observers may have biases that make it difficult to get anaccurate assessment of an event based on isolated or anecdotalobservations. Polling methods may not determine the interstitialreactions during an event.

There exists a need for improved systems and methods for capturing eventfeedback, or at least alternatives.

SUMMARY

In a first aspect, some embodiments provide

A method for capturing event feedback comprising:

-   -   a) on a computer-readable storage module, storing a plurality of        different event records for a plurality of different events such        that the plurality of different event records comprises a        corresponding event record for each event in the plurality of        different events;    -   b) for each event record in the plurality of different event        records, receiving a plurality of feedback indicia arrays at a        communication module, the communication module being        electronically linked to the computer-readable storage module        for communication therewith, wherein each feedback indicia array        in the plurality of feedback indicia arrays stores a plurality        of different times and a plurality of feedback indicia, such        that for each time in the plurality of different times, the        plurality of feedback indicia comprises an associated feedback        indicium; and    -   c) for each event record in the plurality of different event        records, operating a data processing module, linked to the        computer-readable storage module for communication therewith, to        determine an aggregate feedback result array from the plurality        of feedback indicia arrays received for that event record,        wherein the aggregate feedback result array defines an        associated aggregate feedback timeline, and for a plurality of        different times in that timeline, a plurality of aggregate        feedback results, such that for each time in the plurality of        different times in that timeline, the plurality of aggregate        feedback results comprises an associated aggregate feedback        result, the plurality of aggregate feedback results being        determined by aggregating the plurality of feedback indicia for        each feedback indicia array in the plurality of feedback indicia        arrays based on the plurality of different times for each        feedback indicia array in the plurality of feedback indicia        arrays. Feedback indicia may be data that indicates user        feedback, feedback data points, feedback data values, and so on.        Feedback indicium may refer to a singular instance of feedback        indicia—for example, without limitation, a single human rating        at a particular instance in time, a single biometric feedback        indicium indicating a single biometric characteristic of the        user at a particular instance in time (i.e. a pulse rate), and a        single environmental feedback indicating an environmental        condition around the user at a particular instance in time.

Receiving the plurality of feedback indicia arrays at the communicationmodule comprises receiving the plurality of feedback indicia arrays froma plurality of mobile devices for at least one event record in theplurality of event records.

Receiving the plurality of feedback indicia arrays from the plurality ofmobile devices may comprise receiving the plurality of feedback indiciaarrays from the plurality of mobile devices in real time by, for eachfeedback indicia array transmitted from a mobile device, receiving theplurality of feedback indicia as an ordered sequence over time at thecommunication module based on the timeline for that feedback indiciaarray such that some feedback indicia in the plurality of feedbackindicia are received by the communication module before other feedbackindicia in the plurality of feedback indicia are transmitted to thecommunication module by the mobile device.

The method may further comprise, on receiving the request to registerthe new event from a requester at the communication module,

operating the data processing module to further define the new eventrecord by receiving from the requester at the communication module andstoring at the computer-readable storage module at least one feedbacksource acceptance attribute, wherein the at least one feedback sourceacceptance attribute identifies a possible characteristic of a mobiledevice in the plurality of mobile devices, or a user of the mobiledevice; and receiving an unfiltered plurality of feedback indicia arraysat the communication module, and then operating the data processingmodule to filter out from the unfiltered plurality of feedback indiciaarrays any feedback indicia arrays in the unfiltered plurality offeedback indicia arrays not satisfying the at least one feedback sourceacceptance attribute in determining the aggregate feedback result array,such that the aggregate feedback result array is determined withoutconsidering any feedback indicia arrays filtered out from the unfilteredplurality of feedback indicia arrays.

At least one feedback source acceptance attribute may be selectable bythe requester from a plurality of characteristics comprising location,age, gender, nationality, mobile device type and mobile device model.

The feedback source acceptance attributes may comprise a plurality offeedback indicia array sources, wherein each feedback indicia arraysource identifies a user or a mobile device in the plurality of mobiledevices, and wherein each feedback indicia array in the plurality offeedback indicia arrays received at the communication module is receivedfrom an associated feedback indicia array source in the plurality offeedback indicia array sources and wherein the aggregated feedbackresult array is determined without considering feedback from a sourceother than the plurality of feedback indicia array sources.

The method may further comprise, on receiving the request to registerthe new event from the requester at the communication module,

operating the data processing module to further define the new eventrecord by receiving from the requester at the communication module andstoring at the computer-readable storage module at least one authorizedfeedback indicium kind selected from a plurality of feedback indiciakinds wherein the at least one authorized feedback indicium kind isselected from a group consisting of human feedback indicating a ratingprovided by a user, biometric feedback indicating a biometriccharacteristic of the user, and environmental feedback indicating anenvironmental condition around the user; and receiving an unfilteredplurality of feedback indicia arrays at the communication module, andthen operating the data processing module to filter out any feedbackindicia arrays in the unfiltered plurality of feedback indicia arraysdefining feedback kinds other than the at least one authorized feedbackindicium kind in determining the aggregate feedback result array, suchthat the aggregate feedback result array is determined withoutconsidering any feedback indicia arrays filtered out from the unfilteredplurality of feedback indicia arrays.

At least one authorized feedback indicium kind may comprise the humanfeedback and at least one of environmental feedback and biometricfeedback; and, the plurality of feedback indicia arrays received for thenew event record may be configured to store, for each time in theplurality of different times, an associated human feedback rating and atleast one of an environmental feedback entry and a biometric feedbackentry.

The human feedback may comprise electro-mechanical feedback.

The method may further comprise

operating the data processing module to analyze each feedback indiciaarray in the plurality of feedback indicia arrays received at thecommunication module to determine a plurality of tentative mileposttimes in the plurality of different times for that feedback indiciaarray such that the feedback indicium corresponding to each tentativemilepost time in the plurality of milepost times differs from thefeedback indicium corresponding to a time in the plurality of differenttimes immediately before this milepost time by more than a thresholdamount; andoperating the data processing module to compare the plurality oftentative milepost times for each feedback indicia array in theplurality of feedback indicia arrays with the plurality of tentativemilepost times for other feedback indicia arrays in the plurality offeedback indicia arrays to determine a plurality of confirmed mileposttimes in the associated aggregate feedback timeline, wherein theaggregate feedback result corresponding to each confirmed milepost timein the plurality of confirmed milepost times differs from the aggregatefeedback result corresponding to a time in the plurality of differenttimes for the associated aggregate feedback timeline immediately beforethis confirmed milepost time by more than an aggregate threshold amount.

The method may further comprise, for each event record in the pluralityof different event records, operating the data processing module todetermine the aggregate feedback result array from the plurality offeedback indicia arrays received for that event record comprisesdetermining the associated aggregate feedback timeline by converting theplurality of different times for each feedback indicia array in theplurality of feedback indicia arrays to a common timescale along theassociated aggregate feedback timeline based on the plurality oftentative milepost times determined for each feedback indicia array.

The method may further comprise operating the data processing module tochange the threshold amount when determining the aggregate feedbacktimeline.

The method may further comprise

for each feedback indicia array in at least two feedback indicia arraysin the plurality of feedback indicia arrays, receiving at least oneinput tag from a user at the communication module;for each feedback indicia array in the at least two feedback indiciaarrays, operating the data processing module, to determine a userselected timeline segment, a start time tag and an end time tag based onthe at least one input tag, wherein the user selected timeline segmentcorresponds to a duration of time of a segment within an event timeline,the start time tag corresponds to a start time of the user selectedtimeline segment and the end time tag corresponds to an end time of theuser selected timeline segment, and wherein the at least two feedbackindicia arrays are selected such that the user selected timeline segmentof one feedback indicia array in the at least two feedback indiciaarrays differs in length from a different feedback indicia array in theat least two feedback indicia arrays; andoperating the data processing module to determine the aggregate feedbackresult array by defining an associated aggregate feedback timeline bycomparing at least two user selected timeline segments for the at leasttwo feedback indicia arrays to determine at least one time scaleadjustment and adjusting the relative timing of at least some of theplurality of the feedback indicia arrays based on the at least one timescale adjustment before aggregating the plurality of feedback indiciaarrays.

The data processing module may be operated in real time to determine anupdateable version of the aggregate feedback result array based, inpart, on a part of a feedback indicia array in the plurality of feedbackindicia arrays received from one mobile device before a remainder ofthat feedback indicia array is received at the communication module; andthe communication module may progressively transmit updated versions ofthe updateable version of the aggregate feedback result array to the onemobile device before all of that feedback indicia array from the onemobile device is received at the communication module.

Storing the plurality of different event records for the plurality ofdifferent events may comprise storing two or more event records for thesame event.

The method may further comprise, for the at least one event record inthe plurality of event records,

operating the communication module to receive and the computer-readablestorage module to store a plurality of feedback indicia array sourceswherein each feedback indicia array source in the plurality of feedbackindicia array sources identifies at least one of a mobile device in theplurality of mobile devices, a user of the mobile device and a locationof the mobile device;receiving identification information from a mobile device in theplurality of mobile devices at the communication module, theidentification information comprising mobile device name, mobile devicemodel, mobile device operating system, mobile device identifier, mobiledevice GPS location, user identifier and user password, theidentification information identifying at least one of a mobile device,a user of the mobile device and a location of the mobile device;at the data processing module, comparing information identified by eachof the feedback indicia array source in the plurality of feedbackindicia array sources corresponding to each event record in theplurality of event records stored at the computer-readable storagemodule to corresponding information identified in the identificationinformation received from the mobile device; andgenerating a list of event records from the plurality of event recordsstored at the computer-readable storage medium based on the comparisonsuch that for each event record in the list of event records, at leastone feedback indicia array source in the plurality of feedback indiciaarray sources identifies all that information also identified in theidentification information received from the mobile device.

In another aspect, some embodiments provide a method for capturing andcommunicating event feedback using a computing device, comprising:

-   -   a) configuring a transmission module of the computing device to        synchronize to an event record stored on a remote        computer-readable storage module, wherein the event record        represents an event of interest such that the transmission of        the event feedback is configured to link the event feedback to        the event record;    -   b) at a plurality of different times during an event timeline,        receiving the event feedback as feedback indicia associated with        an event of interest at the computing device;    -   c) operating a data processor of the computing device to        assemble a feedback indicia array using the feedback indicia,        wherein the feedback indicia array stores the plurality of        different times and an associated plurality of feedback indicia,        such that for each time in the plurality of different times, the        feedback indicia array comprises a time indicium pair comprising        that time and an associated feedback indicium in the associated        plurality of feedback indicia, wherein the event timeline        defines a period of time for the event for that computing        device; and    -   d) providing the event feedback by, during the event timeline,        periodically operating a transmission module of the computing        device to transmit each time indicium pair in the feedback        indicia array to a remote data processing module until all of        the feedback indicia array is transmitted to the remote data        processing module, wherein the transmission of each time        indicium pair in the feedback indicia array is configured to        link the time indicium pair to the event record.

Configuring the transmission module of the computing device tosynchronize to the event record stored on the remote computer-readablestorage module to link the feedback indicia array to the event recordmay comprise operating the transmission module to transmit an eventidentifier identifying the event record to the remote data processingmodule.

Operating the transmission module to transmit an event identifieridentifying the event record to the remote data processing module maycomprise transmitting the event identifier with each time indicium pairin the feedback indicia array.

Configuring the transmission module of the computing device tosynchronize to the event record stored on the remote computer-readablestorage module to link the feedback indicia array to the event recordmay comprise operating the transmission module to transmit each timeindicium pair in the feedback indicia array to a location, wherein thelocation identifies the event record.

The feedback indicia for the event of interest received at the computingdevice may comprise human feedback, and the associated plurality offeedback indicia stored in the feedback indicia array may comprise aplurality of human feedback ratings, where each human feedback rating isprovided by a user of the computing device, such that for each time inthe plurality of different times, the feedback indicia array maycomprise a time human indicium pair comprising that time and anassociated human feedback rating in the associated plurality of humanfeedback ratings.

The method may further comprise during a delayed time intervaloverlapping with the event timeline, receiving at the transmissionmodule an aggregate feedback array determined by the remote dataprocessing module, wherein the aggregate feedback array is determined byaggregating the time indicium pairs transmitted to the remote dataprocessing module with other feedback indicia associated with the eventreceived from other users.

For each time in the plurality of different times, the aggregatefeedback array may comprise a runtime value and an aggregate resultpair, where the runtime value is associated with a point in time withinthe event timeline and the aggregate result is determined from theassociated feedback indicium in the time indicium pair for that runtimevalue; and receiving the aggregate feedback array at the transmissionmodule may comprise periodically receiving for each time in theplurality of different times, the runtime value and aggregate resultpair.

Some of the runtime value and aggregate result pairs may be received atthe transmission module during the event timeline, and before someassociated feedback indicia in the associated plurality of feedbackindicia are transmitted by the transmission module to the remote dataprocessing module.

The computing device may be configured for wireless communication withthe remote data processing module and the remote computer-readablestorage module, and the feedback indicia array may be wirelesslytransmitted to the remote data processing module, and the aggregatefeedback array may be received by wireless transmission from the remotedata processing module.

The method may further comprise operating a display of the computingdevice to display progressively more of the time indicium pairs and theruntime value and aggregate result pairs during the event timeline.

The computing device may be coupled to at least one sensor deviceselected from the group consisting of a heart rate sensor, a pulse ratesensor, a temperature sensor, a sound level sensor, a light levelsensor, a GPS location sensor, an image sensor and an olfactory sensor,and the sensor device may be operable to measure a sensor feedback valueselected from the group consisting of biometric feedback indicating abiometric characteristic of a user and environmental feedback indicatingan environmental condition around the user.

The method may further comprise

at each time in a plurality of different sensor measurement times duringthe event timeline, measuring at the at least one sensor device thesensor feedback value to provide a plurality of sensor feedback values;receiving at the computing device the at least one sensor feedback valuemeasured at the sensor device and a corresponding sensor measurementtime in the plurality of sensor feedback values and assembling a sensorfeedback indicia array therefrom, wherein the sensor feedback indiciaarray stores a plurality of different sensor measurement times and anassociated plurality of sensor feedback values, such that for each timein the plurality of different sensor measurement times, the sensorfeedback value comprises a sensor measurement time sensor feedback valuepair comprising that time and an associated sensor feedback value in theassociated plurality of sensor feedback values; andduring the event timeline, periodically operating the transmissionmodule of the computing device to transmit each sensor measurement timesensor feedback value pair in the sensor feedback indicia array alongwith each time human indicium pair in the human feedback indicia arrayto a remote data processing module until all of the sensor feedbackindicia array and the human feedback indicia array is transmitted to theremote data processing module.

The method may further comprise

operating a metaphor generator at the computing device, the metaphorgenerator being operable to configure a plurality of metaphors such thateach metaphor in the plurality of metaphors is providable at thecomputing device and usable by the observer to input a variable humanfeedback rating;receiving from the user a request for a metaphor in the plurality ofmetaphors configured by the metaphor generator;providing at the computing device the metaphor requested by the user;at a plurality of different times during the event timeline, receivinghuman feedback using the metaphor provided at the computing device; andconverting the human feedback received using the metaphor into the humanfeedback indicia array, wherein each human feedback indicia array in theassociated plurality of human feedback indicia arrays comprises amapping of the human feedback received using the metaphor into anumerical value and each time corresponding to the human feedback in theplurality of different times comprising the time at which the humanfeedback was received, wherein the mapping of the human feedback into anumerical value is based on mapping information provided by the eventrecord representing the event of interest.

The method may further comprise transmitting at the transmission modulean indication of the metaphor provided at the computing device toreceive human feedback from the user to the remote data processingmodule; and receiving at the transmission module the aggregate feedbackarray determined by the remote data processing module, wherein theaggregate feedback array is determined based on the indication of themetaphor transmitted.

The method may further comprise operating the data processor at thecomputing device to reconfigure the metaphor generator to restrict theplurality of metaphors to a subset of metaphors comprising at least onemetaphor, wherein the subset of metaphors to be provided at thecomputing device for the observer to input the human feedback rating isspecified by the event record; and wherein receiving from the user arequest for a metaphor in the plurality of metaphors comprises receivingfrom the user a request for a metaphor in the subset of metaphors.

In accordance with other embodiments described herein there is provideda computer readable medium comprising computer program instructionswhich when executed implement the methods of any one of paragraphs [5]to [35].

In accordance with other embodiments described herein there is provideda system for capturing event feedback comprising:

-   -   a) a computer-readable storage module for storing a plurality of        different event records for a plurality of different events such        that the plurality of different event records comprise a        corresponding event record for each event in the plurality of        different events;    -   b) a communication module configured, for each event record in        the plurality of different event records, to receive a plurality        of feedback indicia arrays for that event record, the        communication module being electronically linked to the        computer-readable storage module for communication therewith,        wherein each feedback indicia array in the plurality of feedback        indicia arrays stores a plurality of different times and a        plurality of feedback indicia, such that for each time in the        plurality of different times, the plurality of feedback indicia        comprises an associated feedback indicium; and    -   c) a data processing module linked to the computer-readable        storage module for communication therewith, the data processing        module being configured to determine, for each event record in        the plurality of different event records, an aggregate feedback        result array from the plurality of feedback indicia arrays        received for that event record, wherein the aggregate feedback        result array defines an associated aggregate feedback timeline,        and for a plurality of different times in that timeline, a        plurality of aggregate feedback results, such that for each time        in the plurality of different times in that timeline, the        plurality of aggregate feedback results comprises an associated        aggregate feedback result, the plurality of aggregate feedback        results being determined by aggregating the plurality of        feedback indicia for each feedback indicia array in the        plurality of feedback indicia arrays based on the plurality of        different times for each feedback indicia array in the plurality        of feedback indicia arrays.

The communication module may be configured to receive the plurality offeedback indicia arrays from a plurality of mobile devices for at leastone event record in the plurality of event records,

The communication module may be configured to receive the plurality offeedback indicia arrays from the plurality of mobile devices in realtime by, for each feedback array transmitted from each mobile device,receiving the plurality of feedback indicia as an ordered sequence overtime at the communication module based on the timeline for that feedbackindicia array such that some feedback indicia in the plurality offeedback indicia are receivable by the communication module before otherfeedback indicia in the plurality of feedback indicia are transmitted tothe communication module by the mobile device.

The communication module may be configured to receive a request toregister a new event by adding a new event record to the plurality ofevent records, and the data processing module is configured to add thenew event record to the plurality of event records based on informationin the request.

The data processing module may be configured to further define the newevent record by receiving from a requester at the communication moduleand storing in the computer-readable storage module at least onefeedback source acceptance attribute, wherein the feedback sourceacceptance attribute identifies a possible characteristic of a mobiledevice in the plurality of mobile devices, or a user of the mobiledevice; the communication module may be configured to receive anunfiltered plurality of feedback indicia arrays; and the data processingmodule may be operable to filter out from the unfiltered plurality offeedback indicia arrays any feedback indicia arrays in the unfilteredplurality of feedback indicia arrays not satisfying the at least onefeedback source acceptance attribute in determining the aggregatefeedback result array, such that the aggregate feedback result array isdetermined without considering any feedback indicia arrays filtered outfrom the unfiltered plurality of feedback indicia arrays.

The communication module may be configured to display a plurality ofcharacteristics comprising location, age, gender, nationality, mobiledevice type and mobile device model to the requester, the communicationmodule further comprising an input operable by the requester to selectthe at least one feedback source acceptance attribute from the pluralityof characteristics comprising location, age, gender, nationality, mobiledevice type and mobile device model.

The feedback source acceptance attribute may comprise a plurality offeedback indicia array sources identifying a user or a mobile device inthe plurality of mobile devices, and wherein each feedback indicia arrayin the plurality of feedback indicia arrays received at thecommunication module may be received from an associated feedback indiciaarray source in the plurality of feedback indicia array sources andwherein the data processing module may be configured to determine theaggregated feedback result array without considering feedback from asource other than the plurality of feedback indicia array sources.

On receiving the request to register the new event from the requester,the data processing module may be configured to further define the newevent record by receiving from a requester at the communication moduleand storing in the computer-readable storage module at least oneauthorized feedback indicium kind selected from a plurality of feedbackindicia kinds wherein the at least one authorized feedback indicium kindis selected from a group consisting of human feedback indicating arating provided by a user, biometric feedback indicating a biometriccharacteristic of the user, and environmental feedback indicating anenvironmental condition around the user; the communication module may beconfigured to receive an unfiltered plurality of feedback indiciaarrays; and the data processing module may be operable to filter out anyfeedback indicia arrays in the unfiltered plurality of feedback indiciaarrays defining feedback kinds other than the at least one authorizedfeedback indicium kind, such that the aggregate feedback result array isdetermined without considering any feedback indicia arrays filtered outfrom the unfiltered plurality of feedback indicia arrays.

At least one authorized feedback indicium kind may comprise the humanfeedback and at least one of environmental feedback and biometricfeedback; and, the plurality of feedback indicia arrays received for thenew event record, may be configured to store, for each time in theplurality of different times, an associated human feedback rating and atleast one of an environmental feedback entry and a biometric feedbackentry.

The human feedback received by the computing device may compriseelectro-mechanical feedback.

The data processing module may be configured to analyze each feedbackindicia array in the plurality of feedback indicia arrays received atthe communication module to determine a plurality of tentative mileposttimes in the plurality of different times for that feedback indiciaarray such that the feedback indicium corresponding to each tentativemilepost time in the plurality of milepost times differs from thefeedback indicium corresponding to a time in the plurality of differenttimes immediately before this milepost time by more than a thresholdamount; and compare the plurality of tentative milepost times for eachfeedback indicia array in the plurality of feedback indicia arrays withthe plurality of tentative milepost times for other feedback indiciaarrays in the plurality of feedback indicia arrays to determine aplurality of confirmed milepost times in the associated aggregatefeedback timeline, wherein the aggregate feedback result correspondingto each confirmed milepost time in the plurality of confirmed mileposttimes differs from the aggregate feedback result corresponding to a timein the plurality of different times for the associated aggregatefeedback timeline immediately before this confirmed milepost time bymore than an aggregate threshold amount.

For each event record in the plurality of different event records, thedata processing module may be configured to determine the aggregatefeedback result array from the plurality of feedback indicia arraysreceived for that event record by determining the associated aggregatefeedback timeline by converting the plurality of different times foreach feedback indicia array in the plurality of feedback indicia arraysto a common timescale along the associated aggregate feedback timelinebased on the plurality of tentative milepost times determined for eachfeedback indicia array.

The data processing module may be further operable to change thethreshold amount when determining the aggregate feedback timeline.

The communication module may be configured to receive at least one inputtag from a user for each feedback indicia array in at least two feedbackindicia arrays in the plurality of feedback indicia arrays; and the dataprocessing module may be operable to

-   -   determine, for each feedback indicia array in the at least two        feedback indicia arrays, a user selected timeline segment, a        start time tag and an end time tag based on the at least one        input tag, wherein the user selected timeline segment        corresponds to a duration of time of a segment within an event        timeline, the start time tag corresponds to a start time of the        user selected timeline segment and the end time tag corresponds        to an end time of the user selected timeline segment, and        wherein the at least two feedback indicia arrays are selected        such that the user selected timeline segment of one feedback        indicia array in the at least two feedback indicia arrays        differs in length from a different feedback indicia array in the        at least two feedback indicia arrays; and    -   determine the aggregate feedback result array by defining an        associated aggregate feedback timeline by comparing at least two        user selected timeline segments for the at least two feedback        indicia arrays to determine at least one time scale adjustment        and adjusting the relative timing of at least some of the        plurality of the feedback indicia arrays based on the at least        one time scale adjustment before aggregating the plurality of        feedback indicia arrays.

The data processing module may be configured to operate in real time todetermine an updateable version of the aggregate feedback result arraybased, in part, on a part of a feedback indicia array in the pluralityof feedback indicia arrays received from one mobile device before aremainder of that feedback indicia array is received at thecommunication module; and the communication module may be operable toprogressively transmit updated versions of the updateable version of theaggregate feedback result array to the one mobile device before all ofthat feedback indicia array from the one mobile device is received atthe communication module.

The computer-readable storage module may be operable to store two ormore event records for the same event.

For the at least one event record in the plurality of event records, thecomputer-readable storage module may be configured to store a pluralityof feedback indicia array sources, wherein each feedback indicia arraysource in the plurality of feedback indicia array sources identifies atleast one of a mobile device in the plurality of mobile devices, a userof the mobile device and a location of the mobile device; thecommunication module may be configured to receive identificationinformation from a mobile device in the plurality of mobile devices, theidentification information comprising mobile device name, mobile devicemodel, mobile device operating system, mobile device identifier, mobiledevice GPS location, user identifier and user password, theidentification information also identifying at least one of a mobiledevice, a user of the mobile device and a location of the mobile device;the data processing module may be configured to compare informationidentified by each of the feedback indicia array source in the pluralityof feedback indicia array sources stored for each event records in theplurality of event records stored at the computer-readable storagemodule to corresponding information identified in the identificationinformation received from the mobile device; and the data processingmodule may be further configured to generate a list of event records inthe plurality of event records stored at the computer-readable storagemedium based on the comparison such that for each event record in thelist of event records, at least one feedback indicia array source in theplurality of feedback indicia array sources identifies all thatinformation also identified in the identification information receivedfrom the mobile device.

In some other embodiments described herein, there is provided acomputing device for capturing and communicating event feedbackcomprising:

a transmission module configured to synchronize to an event recordstored on a remote computer-readable storage module, wherein the eventrecord represents an event of interest such that transmission of eventfeedback at the transmission module is configured to link the eventfeedback to the event record;

a user interface module configured, at a plurality of different timesduring an event timeline, to receive the event feedback as feedbackindicia associated with an event of interest; and

a data processor configured to assemble a feedback indicia array usingthe feedback indicia, wherein the feedback indicia array stores theplurality of different times and an associated plurality of feedbackindicia, such that for each time in the plurality of different times,the feedback indicia array comprises a time indicium pair comprisingthat time and an associated feedback indicium in the associatedplurality of feedback indicia, wherein the event timeline defines aperiod of time for the event for that computing device; and

wherein the transmission module may be configured, during the eventtimeline, to provide the event feedback by periodically transmittingeach time indicium pair in the feedback indicia array to a remote dataprocessing module until all of the feedback indicia array is transmittedto the remote data processing module, wherein the transmission of eachtime indicium pair in the feedback indicia array is configured to linkthe time indicium pair to the event record.

The transmission module may be configured to synchronize to the eventrecord stored on the remote computer-readable storage module to link thefeedback indicia array to the event record by transmitting an eventidentifier identifying the event record to the remote data processingmodule.

The transmission module may be configured to transmit the eventidentifier with each time indicium pair in the feedback indicia array tothe remote data processing module.

The transmission module may be configured to synchronize to the eventrecord stored on the remote computer-readable storage module to link thefeedback indicia array to the event record by transmitting each timeindicium pair in the feedback indicia array to a location, wherein thelocation identifies the event record. The term ‘location’ may meanphysical or virtual locations, such as an identified resource. Forexample, the location may be a uniform resource identifier (URI). Auniform resource identifier (URI) may be classified as locators (URLs),names (URNs), or both. A URN (uniform resource name) may define aresource identity and URL (uniform resource locator) may function likean address and provide a method for finding the resource.

The user interface module may be configured, for the event of interest,to receive feedback indicia comprising human feedback, wherein theassociated plurality of feedback indicia stored in the feedback indiciaarray comprises a plurality of human feedback ratings, each humanfeedback rating being provided by a user of the computing device, suchthat for each time in the plurality of different times, the feedbackindicia array comprises a time human indicium pair comprising that timeand an associated human feedback rating in the associated plurality ofhuman feedback ratings.

The transmission module may be, during a delayed time intervaloverlapping with the event timeline, configured to receive an aggregatefeedback array determined at the remote data processing module, whereinthe aggregate feedback array is determined by aggregating the timeindicium pairs transmitted to the remote data processing module withother feedback indicia associated with the event received from otherusers.

For each time in the plurality of different times, the aggregatefeedback array may comprise a runtime value and an aggregate resultpair, the runtime value being associated with a point in time within theevent timeline and the aggregate result being determined at the remotedata processing module from the associated feedback indicium in the timeindicium pair for that runtime value; and the transmission module may beconfigured, for each time in the plurality of different times, toperiodically receive the runtime value and aggregate result pair.

The transmission module may be configured to receive some of the runtimevalue and aggregate result pairs during the event timeline and beforetransmitting some associated feedback indicia in the associatedplurality of feedback indicia to the remote data processing module.

The computing device may be configured for wireless communication withthe remote data processing module and the remote computer-readablestorage module, wherein the transmission module may be configured towirelessly transmit the feedback indicia array to the remote dataprocessing module and wirelessly receive the aggregate feedback arrayfrom the remote data processing module.

The computing device may comprise a display, wherein the display is,during the event timeline, may be configured to progressively displaymore of the time indicium pairs and the runtime value and aggregateresult pairs.

The computing device may further comprise at least one sensor devicebeing one of a heart rate sensor, a pulse rate sensor, a temperaturesensor, a sound level sensor, a light level sensor, a GPS locationsensor, an image sensor and an olfactory sensor, wherein the at leastone sensor device may be configured, at each time in a plurality ofdifferent sensor measurement times during the event timeline, to measurea sensor feedback value to provide a plurality of sensor feedbackvalues, each sensor feedback value being one of biometric feedbackindicating a biometric characteristic of a user and environmentalfeedback indicating an environmental condition around the user; the dataprocessor may be configured to receive the at least one sensor feedbackvalue measured at the sensor device and a corresponding sensormeasurement time in the plurality of sensor feedback values, andassemble a sensor feedback indicia array therefrom, wherein the sensorfeedback indicia array may store a plurality of different sensormeasurement times and an associated plurality of sensor feedback values,such that for each time in the plurality of different sensor measurementtimes, the sensor feedback value may comprise a sensor measurement timesensor feedback value pair comprising that time and an associated sensorfeedback value in the associated plurality of sensor feedback values;and the transmission module may be configured, during the eventtimeline, to periodically transmit each sensor measurement time sensorfeedback value pair in the sensor feedback indicia array along with eachtime human indicium pair in the human feedback indicia array to a remotedata processing module until all of the sensor feedback indicia arrayand the human feedback indicia array is transmitted to the remote dataprocessing module.

The computing device may further comprise a metaphor generator operableto configure a plurality of metaphors such that each metaphor in theplurality of metaphors is providable at the computing device and usableby the observer to input a variable human feedback rating; and the userinterface module may be configured to receive from the user a requestfor a metaphor in the plurality of metaphors configured by the metaphorgenerator; to provide the metaphor requested by the user; and toreceive, at a plurality of different times during the event timeline,human feedback using the metaphor provided; and the data processor maybe configured to convert the human feedback received using the metaphorinto the human feedback indicia array, wherein each human feedbackindicia array in the associated plurality of human feedback indiciaarrays comprises a mapping of the human feedback received using themetaphor into a numerical value and each time corresponding to the humanfeedback in the plurality of different times comprising the time atwhich the human feedback was received, wherein the mapping of the humanfeedback into a numerical value is based on mapping information providedby the event record representing the event of interest.

The transmission module may be configured to transmit an indication ofthe metaphor provided at the computing device to receive human feedbackfrom the user to the remote data processing module; and receive at thetransmission module the aggregate feedback array determined by theremote data processing module, wherein the aggregate feedback array isdetermined based on the indication of the metaphor transmitted.

The data processor may be operable to reconfigure the metaphor generatorto restrict the plurality of metaphors to a subset of metaphors, thesubset of metaphors comprising at least one metaphor, wherein the subsetof metaphors to be provided at the user interface module for theobserver to input the human feedback rating is specified by the eventrecord; and wherein receiving from the user a request for a metaphor inthe plurality of metaphors comprises receiving from the user a requestfor a metaphor in the subset of metaphors.

In another aspect, some embodiments provide

A method for capturing event feedback comprising:

-   -   registering an event record and assigning an event identifier to        the registered event record, wherein the event record is        associated with an event and comprises an event timeline,        wherein the event timeline defines a period of time for the        event;    -   receiving a plurality of feedback indicia for the event from a        plurality of devices, wherein each feedback indicia is        associated with an event timestamp, wherein each event timestamp        indicates a point in time within the event timeline;    -   storing the received feedback indicia for the event in        association with the event record;    -   generating feedback results for the event, wherein the feedback        results comprise a vector of feedback result values for the        event, wherein each feedback result value is associated with a        point in time within the event timeline, and wherein each        feedback result value for the event is computed by aggregating        the received feedback indicia for the event based on their        associated event timestamps; and    -   providing a representation of the feedback results.

An event may be an observable phenomenon selected from the groupconsisting of: a concert, a sporting event, an audio program, atelevision program, web-based media, a movie, a political event, anartistic performance, a party, a meeting, a class, a seminar, aconference, a recorded event, a live event, and an artistic performance.

At least some of received feedback indicia for the event may compriseenvironmental indicia selected from the group consisting of date, time,longitude, latitude, altitude, acceleration, sound levels, light levels,colors, images, videos, temperature, smell, heart rate, images, videos,air pressure, humidity, and wherein at least some feedback values forthe event are computed based on the received environmental indicia forthe event.

The method may further comprise sending an electronic invitation forevent feedback to at least some of the plurality of devices, wherein theelectronic invitation configures the device to send feedback indicia forthe event.

The method may further comprising registering at least some of theplurality of devices and assigning a device identifier to eachregistered device, wherein at least some of the received feedbackindicia may be associated with one or more device identifiers.

The method may further comprise registering an event observer andassigning an event observer identifier to each registered eventobserver, wherein at least some of the received feedback indicia may beassociated with the event observer identifier.

At least some of the events may be associated with a geographiclocation, and in relation to such events, the method may furthercomprise: receiving a geographic location of the device; generating thelist of the events based on the geographic location of the device,wherein at least some of the events identified in the list of events maybe associated with a geographic location proximate to the geographiclocation of the device.

The method may further comprise: generating the list of events based onone or more factors selected from the group consisting of: a geographiclocation of the event, a geographic location of the device, the eventtimeline, a current time, a list of observers invited to providefeedback for the event, and whether the event is publically availablefor feedback.

The method may further comprise specifying one or more metaphors forreceiving the feedback indicia, wherein the metaphors are selected fromthe group consisting of a slider, a question, a numerical scale, a pointwithin an image, a hand gesture, a simulated hand gesture, an icon, abutton, a graph, text, a chart, a grid, a multi-touch gesture, movingsliding finger, tapping rhythmically, clapping hands, clapping on theInternet by, for example, activation or repeated use of a button, and anumber of symbols. The method may further comprise changing themetaphors for receiving the feedback at fixed points in time within thetime period for the event. The method may further comprise changing themetaphors for receiving the feedback in response to received feedbackindicia.

The method may further comprise validating the received feedbackindicia.

The event may be associated with a plurality of event outcomes, and themethod may further comprise:

-   -   selecting an event outcome of the plurality of event outcomes        based on the received feedback indicia; and    -   providing the selected event outcome.

The method may further comprise altering the event by implementing theselected event outcome.

At least some of the received feedback indicia for the event may relateto a rating measurement, wherein the rating measurement provides anindication of event enjoyment.

At least some of the feedback results may comprise an engagementmeasurement, wherein the engagement measurement indicates the qualityand quantity of the received feedback indicia at different points intime in the event timeline.

At least some of the received feedback indicia may be in a continuousform or a discrete form.

In accordance with other embodiments there is provided a method forcapturing event feedback comprising:

-   -   associating an event with an event identifier and an event        timeline that defines a period of time for the event;    -   receiving a plurality of feedback indicia for the event at a        device, wherein each feedback indicia is associated with a        timestamp, wherein each timestamp indicates a point in time        within the event timeline;    -   providing the received feedback indicia for the event to a        server;    -   receiving feedback results for the event, wherein the feedback        results comprise a vector of feedback result values for the        event, wherein each feedback result value is associated with a        point in time within the event timeline, and wherein each        feedback result value for the event is computed by aggregating        received feedback indicia for the event based on their        associated timestamps; and    -   providing a representation of the feedback results.

In accordance with other embodiments described herein there is provideda system for capturing event feedback comprising: a plurality of clientsfor receiving feedback indicia at a corresponding plurality of devices;a server system for registering an event record associated with an eventand assigning an event identifier to the registered event, wherein theevent record is associated with an event timeline, wherein the eventtimeline defines a period of time for the event; receiving a pluralityof feedback indicia for the event from a plurality of devices, whereineach feedback indicia is associated with an event timestamp, whereineach event timestamp indicates a point in time within the eventtimeline; storing the received feedback indicia for the event inassociation with the event record; generating feedback results for theevent, wherein the feedback results comprise a vector of feedback resultvalues for the event, wherein each feedback result value is associatedwith a point in time within the event timeline, and wherein eachfeedback value for the event is computed by aggregating the receivedfeedback indicia for the event based on their associated eventtimestamps; and providing a representation of the feedback results tothe clients.

The system may have a client-server architecture or a peer-to-peerarchitecture.

In accordance with other embodiments there is provided acomputer-readable storage device comprising a plurality of instructionsfor an application, the application for execution on a computing device,the instructions for performing a method of capturing feedbackcomprising: associating an event with an event identifier and an eventtimeline that defines a period of time for the event; receiving aplurality of feedback indicia for the event at a device, wherein eachfeedback indicia is associated with a timestamp, wherein each timestampindicates a point in time within the event timeline; providing thereceived feedback indicia for the event to a server; receiving feedbackresults for the event, wherein the feedback results comprise a vector offeedback result values for the event, wherein each feedback result valueis associated with a point in time within the event timeline, andwherein each feedback result value for the event is computed byaggregating received feedback indicia for the event based on theirassociated timestamps; and providing a representation of the feedbackresults.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of embodiments of the systems and methodsdescribed herein, and to show more clearly how they may be carried intoeffect, reference will be made, by way of example, to the accompanyingdrawings in which:

FIG. 1 is a block diagram of a system for capturing event feedback inaccordance with at least one embodiment;

FIG. 2 is a block diagram of a device for capturing event feedback inaccordance with at least one embodiment;

FIG. 3 is a block diagram of a client for capturing event feedback inaccordance with at least one embodiment;

FIG. 4 is a block diagram of a server for capturing event feedback inaccordance with at least one embodiment;

FIG. 5 is a flowchart diagram of a method for capturing event feedbackin accordance with at least one embodiment;

FIG. 6 is a flowchart diagram of another method for capturing eventfeedback in accordance with at least one embodiment;

FIG. 7 is another flowchart diagram of another method for capturingevent feedback in accordance with at least one embodiment;

FIG. 8 is another flowchart diagram of another method for capturingevent feedback in accordance with at least one embodiment;

FIGS. 9 to 49 are example screenshots of the system in accordance withat least one embodiment.

The drawings, described below, are provided for purposes ofillustration, and not of limitation, of the aspects and features ofvarious examples of embodiments of described herein. The drawings arenot intended to limit the scope of the applicants' teachings in any way.For simplicity and clarity of illustration, elements shown in thefigures have not necessarily been drawn to scale. The dimensions of someof the elements may be exaggerated relative to other elements forclarity. Further, where considered appropriate, reference numerals maybe repeated among the figures to indicate corresponding or analogouselements.

DESCRIPTION OF EXEMPLARY EMBODIMENTS

It will be appreciated that numerous specific details are set forth inorder to provide a thorough understanding of the exemplary embodimentsdescribed herein. However, it will be understood by those of ordinaryskill in the art that the embodiments described herein may be practicedwithout these specific details. In other instances, well-known methods,procedures and components have not been described in detail so as not toobscure the embodiments described herein. Furthermore, this descriptionis not to be considered as limiting the scope of the embodimentsdescribed herein in any way, but rather as merely describingimplementation of the various embodiments described herein.

The embodiments of the systems and methods described herein may beimplemented in hardware or software, or a combination of both. However,these embodiments may be implemented in computer programs executing onprogrammable computers, each computer including at least one processor,a data storage system (including volatile and non-volatile memory and/orstorage elements), and at least one communication interface. Forexample, the programmable computers may be a server, network appliance,set-top box, embedded device, computer expansion module, personalcomputer, laptop, personal data assistant, or mobile device. Programcode is applied to input data to perform the functions described hereinand to generate output information. The output information is applied toone or more output devices, in known fashion. In some embodiments, thecommunication interface may be a network communication interface. Inembodiments in which elements of the invention are combined, thecommunication interface may be a software communication interface, suchas those for inter-process communication. In still other embodiments,there may be a combination of communication interfaces.

Each program may be implemented in a high level procedural or objectoriented programming or scripting language, or both, to communicate witha computer system. However, alternatively the programs may beimplemented in assembly or machine language, if desired. In any case,the language may be a compiled or interpreted language. Each suchcomputer program may be stored on a storage media or a device (e.g. ROM,magnetic diskette, flash memory, USB drives, memory cards, and so on),readable by a general or special purpose programmable computer, forconfiguring and operating the computer when the storage media or deviceis read by the computer to perform the procedures described herein.Embodiments of the system may also be considered to be implemented as anon-transitory computer-readable storage medium, configured with acomputer program, where the storage medium so configured causes acomputer to operate in a specific and predefined manner to perform thefunctions described herein.

Furthermore, the system, processes and methods of the describedembodiments are capable of being distributed in a computer programproduct including a physical non-transitory computer readable mediumthat bears computer usable instructions for one or more processors. Themedium may be provided in various forms, including one or morediskettes, compact disks, tapes, chips, magnetic and electronic storagemedia, and the like. The computer useable instructions may also be invarious forms, including compiled and non-compiled code.

Reference is first made to FIG. 1, which illustrates a block diagram ofa system 10 for capturing event feedback in accordance with at least oneembodiment. System 10 includes a server system 18 operable to receivefeedback indicia for an event 30 from devices 14 operated by eventobservers 12 observing the event 30. In some embodiments, system 10 canaccommodate observers 12 a to 12 e providing feedback for the event 30from a number of different locations. In some other embodiments, thelocation of the venue from where the observers 12 a to 12 e can providefeedback may be limited. In other embodiments, observers 12 a to 12 ecan provide feedback from any location. In various embodiments, anynumber of observers providing feedback can be accommodated by the system10. In various other embodiments, system 10 is operable to receivefeedback from observers 12 a to 12 e at different times. System 10 mayalso receive feedback from observers 12 in different time zones, such asfor example in California and New York State, for the same event 30being broadcasted a few hours apart. Even within the same time zone,system 10 can receive feedback from observers 12 a to 12 e for the sameevent 30 using different devices, even when the observers are close inproximity and time. System 10 can also be operable to receive feedbackfrom observers 12 a to 12 e for the event 30 any time after it is over,or any time in the future, for example.

System 10 is operable to receive feedback indicia throughout the periodof time for the event 30 to continuously evaluate the event 30. Serversystem 18 is operable to generate feedback results by aggregating andstatistically analyzing the received feedback indicia, and providerepresentations of the feedback results to devices 14 operated by theevent observers 12 and to beneficiaries 22, such as an interested party24 and a proxy 26, for example.

System 10 is operable to enable event observers 12 (also referred toherein as observers) to share the mutual experience of the event 30 andtheir collective reaction throughout the event 30 by providing andsharing feedback indicia and receiving feedback results throughout theevent 30. System 10 may enable observers 12 and beneficiaries 22 (suchas an interested party 24 and a proxy 26) to monitor the reactions ofother observers 12 at key moments of the event. That is system 10provides a tool that assists the beneficiaries 22 in evaluating feedbackresults for the event 30 generated by aggregating feedback indiciareceived from event observers 12.

System 10 may use the feedback results to evaluate or score periods oftime of an event. The feedback results may aid an event organizer, as anexample beneficiary 22 or host 4, in determining what satisfies theevent observers 12, who may be consumers. The feedback results mayassist marketers as another example beneficiary 22 in identifying primeexposure time windows for more targeted advertising campaigns. Thefeedback results may provide the required input data to determine anoutcome of the current event 30 or future occurrences of the event 30.System 10 may give an active role to event observers 12 a to 12 e byenabling the event observers 12 a to 12 e to provide feedback indiciathroughout the event 30.

An event 30 may be any observable phenomenon. An event 30 is associatedwith an event timeline, where the event timeline defines a period oftime for the event. An event 30 may be live or recorded. It may bedirectly observed or otherwise provided for event observers 12 a to 12e, such as by broadcast, file transmission or otherwise. Event 30 mayalso be provided by a satellite provider, cable provider or webcast.Examples of events 30 include concerts, sporting events, televisionprograms, web-based media, personal parties, movies, political events,reality shows, a meeting a class, a seminar, a conference, an artisticperformance, and so on. In essence, an event 30 may be anything that cancause event observers 12 a to 12 e to respond with feedback indicia.

Optionally, server system 18 may include an event transformer 28configured to alter the progress of or outcome of an event 30. An eventmay be associated with a plurality of event outcomes. Server system 18may select an event outcome based on the received feedback indicia andprovide the selected event outcome. Server system 18 may alter orcontrol the event by implementing the selected event outcome. Serversystem 18 may prompt for additional feedback indicia based on theselected event outcome.

For example, the event 30 may be a movie, television show, online mediaor other media with a dynamic story line. Observers 12, throughfeedback, may influence which story line is chosen as the event 30 withthe dynamic story line progresses. As an example, the event 30 may be areality show. Reality show producers may use the feedback results duringa live production to influence the show. The event 30 may be a politicaldebate. Receiving moment-by-moment feedback indicia from event observers12 during political speeches may enable politicians to determine theperception (from most favorable to most unfavorable) of each statementor position taken during the speech. The event 30 may relate toeducation or business. A meeting organizer (where the meeting could be aclass, seminar, conference or business meeting, for example) can usefeedback results generated by feedback indicia received in response toquestions asked by the meeting presenter to ask additional questionsselected by system 10 based on the feedback results. System 10 isoperable to display the feedback results immediately in the presenter'scharts. Additionally, the effectiveness of presenters can be evaluatedmoment-by-moment for immediate or future use. The event 30 may be asporting event or artistic performance. Part of the fun of attending asporting event or performance is the “roar of the crowd”. This aspectmay be missing when event observers 12 view the event remotely. System10 can break down geography and bring together the “virtual crowd” ofevent observers 12. This may add enjoyment to the game or performanceand makes the fan reaction interactive among fans.

System 10 includes network 20 to connect a server system 18, a hostdevice 6 operated by a host 4, a plurality of devices 14 for receivingfeedback indicia from event observers 12, and beneficiaries 22(including an interested party 24 and a proxy 26).

Although only one event 30 is shown, system 10 is configured to receivefeedback indicia and generate feedback results for multiple events. Insome embodiments, system 10 is configured to receive feedback indiciaand generate feedback results for multiple events simultaneously. Inthis example, event 30 is associated with computing componentsconfigured to connect to system 10 via network 20 in order to provideinput data and receive output data, such as feedback results. However,in some embodiments event 30 may not be associated with componentscapable of connecting to system 10 via network 20, or otherwise may notconnect to system 10. In some embodiments, the input data can be storedlocally on device 14 until connection to a network 20 is made availableto the observers 12 a to 12 e.

Network 20 may be any network(s) capable of carrying data including theInternet, Ethernet, plain old telephone service (POTS) line, publicswitch telephone network (PSTN), integrated services digital network(ISDN), digital subscriber line (DSL), coaxial cable, fiber optics,satellite, mobile, wireless (e.g. Wi-Fi, WiMAX), SS7 signaling network,fixed line, local area network, wide area network, and others, includingany combination of these. Although not shown, devices 14, server system18, and other components may connect to network 20 via a firewall, whichis a device, set of devices or software that inspects network trafficpassing through it, and denies or permits passage based on a set ofrules and other criteria. Firewall may be adapted to permit, deny,encrypt, decrypt, or proxy all computer traffic between network 20 anddevices 14, server system 18, and other components based upon a set ofrules and other criteria. For example, firewall may be a network layerfirewall, an application layer firewall, a proxy server, or a firewallwith network address translation functionality.

Host device 6 is operable by a host 4 and may be any networked computingdevice including a processor and memory, such as a personal computer,workstation, server, portable computer, mobile device, personal digitalassistant, laptop, smart phone, WAP phone, an interactive television,video display terminals, gaming consoles, an electronic reading device,and portable electronic devices or a combination of these. Host 4 may beanyone (such as for example, one or more individuals, companies orbusinesses) or anything (such as for example, an automated computersystem) that registers one or more events 30, or one or more aspects ofevents 30 with server system 18. In some embodiments, host 4 may need toenter an agreement with server system 18 before being able to registerevents 30. In various embodiments, no agreements are required betweenhost 4 and server system 18 prior to registration of events 30 by thehost 4. Although for clarity only one host device 6 is illustrated inFIG. 1, there may be more host devices 6 connected via network 20. Hostdevice 6 may include a host client 8 which may be a computingapplication, application plug-in, a widget, instant messagingapplication, mobile device application, e-mail application, onlinetelephony application, java application, web page, or web objectresiding or rendered on the host device 6 in order to access thefunctionality of system 10. Host device 6 is operable by a host 4 to,for example, register an event 30, make a reservation for receivingfeedback for an event 30 and specify the computational resources neededfor evaluating an event 30. An event may also refer to various aspectsof the same event 30. For example, in a case of a political debate, ahost 4 or a host device 6 may register various aspects of this event,such as for example political debate reviewed as Republican, politicaldebate reviewed as Democrat, or political debate reviewed as Independentetc.

Server system 18 is operable to provide the host 4 with options forobtaining and recording feedback indicia for an event 30 from thedevices 14 operated by observers 12. The host device 6 is operable toconfigure the server system 18 for aggregating, analyzing, packaging anddistributing the feedback indicia received from the event observers 12.The host device 6 operated by a host 4 may make a reservation forreceiving feedback for an event 30, which may entail registering anevent record for the event 30 with the server system 18 (if an eventrecord for the event does not exist already, for example) andauthenticate the host device 6 with the server system 18. A host device6 may specify the parameters for aggregating, analyzing, packaging, anddistributing of event 30 related data. The event record may comprise anevent timeline, event objects, event parameters, and event variables,which may be created, generated, determined and stored throughout theevent 30 in response to input data such as feedback indicia and otherdata such as feedback results.

The host device 6 may specify parameters for receiving feedback indiciafor the event 30, the type of feedback indicia, aggregating the receivedfeedback indicia for the event 30, processing and analyzing the receivedfeedback indicia for the event 30, generating feedback results based onthe received feedback indicia for the event 30, and providing anddistributing the generated feedback results. Specifying parameters isoptional and the server system 18 may be configured with defaultparameters if event parameters are not specified by host device 6.Server system 18 may store the parameters in association with the eventrecord. Optionally, the host device 6 may provide server system 18 withconfigurations for creating a unique event experience for one or moreobservers 12 by customizing the appearance of a visual display of theclient 16 on each associated device 14. Server system 18 may createunique event experience for one or more observers 12 by using logos,graphic displays/designs and other industry nuances and by specifyingone or more metaphor(s) used on the client 16 to receive feedbackindicia.

The host device 6 may also provide configurations to create a suite ofone or more metaphors for the event record from which one or moreobservers 12 can select. The host device 6 may specify that metaphorsand the visual appearance of the client 16 may change either staticallyor dynamically in response to received feedback indicia, feedbackresults, a milepost, or instruction from the server system 18. In someother embodiments, the host 4 or host device 6 may allow the client 16to generate a selected subset of metaphors from which an observer 12 canselect one metaphor of choice.

In some embodiments, the host device 6 may allow the server system 18 todynamically provide one or more clients 16 with themes corresponding tothe feedback indicia received from the same client 16, where the themesmay include images, audio clips etc. related to the event 30 beingobserved. For instance, if an observer 12 is evaluating an event 30 suchas a movie, and providing a positive feedback for various scenes orbackground scores, the host device 6 may allow the server system 18 todynamically provide images or audio clips to the client 16 in order tochange the appearance of the client 16 to create a unique experience forthe observer 12. In various embodiments, the observers 12 may have theoption of accepting or rejecting the themes provided by the serversystem 18.

When a host device 6 makes a reservation for receiving feedback for anevent 30, the server system 18 is operable to determine whether an eventrecord exists for the event, and if not to create an event record forthe event. The server system 18 is operable to generate a reservationidentifier to identify the specific host device 6 that made thereservation for receiving feedback for the event, and create a linkbetween the reservation identifier and the event record. The reservationidentifier maybe a unique identifier issued by server system 18 when ahost device 6 makes a reservation for an event. Server system 18 may usethe reservation identifier or other identifier to create a link betweenthe host device 6 and the event record. The host device 6 may alsodeclare that the reservation identifier is accessible to all observers12 or only accessible to a specific list of observers 12. Server system18 provides the host device 6 with the reservation identifier, which maybe shared with the potential observers 12 of the event through aninvitation. Server system 18 provides the host device 6 withconfirmation of options specified in the reservation.

When server system 18 creates an event record, the server system 18generates and assigns an event identifier to the event record. The eventidentifier maybe a unique identifier issued by server system 18 uponcreating an event record to register an event. The event identifier maybe a unique token-based identifier (such as a string of characters) ormay be a relative identifier defining the event record relative to otherdata. Server system 18 may use the event identifier to identify andrecall an event record. In accordance with some embodiments, serversystem 18 generates one event identifier for each event record. Serversystem 18 is operable to generate one or more reservation identifier foreach host device 6 that makes a reservation for receiving feedbackindicia an event. For example, server system 18 may create an eventrecord for a baseball game and assign one event identifier to that eventrecord. One host device 6 may make a reservation to receive feedbackindicia in relation to dance entertainment at the baseball game, anotherhost device 6 may make a reservation to receive feedback indicia inrelation to food at the baseball game, and a further host device 6 maymake a reservation to receive feedback indicia in relation to thebatting at the baseball game. In response, server system 18 is operableto create three different reservation identifiers each associated withthe same event record and event identifier, where each reservationidentifier creates a link between the host device 6 that made thereservation and the event record. There may be only one event identifierassigned to each event record but there may be multiple reservationidentifiers associated with each event record, creating a link betweendifferent host devices 6 and the respective event record.

In some embodiments, only one host device 6 can register an event recordor make a reservation for receiving feedback indicia for the event, suchthat there is only one host device 6 associated with the event 30. Inother embodiments, multiple host devices 6 can make a reservation forthe same event 30. Server system 18 is operable to register only oneevent record for the event 30 (even if there are multiple reservationsfor the event) or multiple event records for the same event butassociated with each other. Each host device 6 obtains their ownreservation identifier for their respective reservation for the sameevent 30. A host device 6 may create multiple reservations for the sameevent 30 and obtain multiple reservation identifiers for the same eventin order to, for example, receive different types of feedback indiciafor the event 30. Further, a host device 6 may register multiple events30 or may make multiple reservations for different events 30.

Device 14 is an instrument capable of receiving input from an observer12, providing the received input to client 16, carrying out client 16instructions and communicating with the server system 18. Devices 14 areoperable by event observers 12 and may be any networked computing deviceincluding a processor and memory, such as a personal computer,workstation, server, portable computer, mobile device, personal digitalassistant, laptop, smart phone, WAP phone, an interactive television,video display terminals, gaming consoles, an electronic reading device,tablets, other portable electronic devices, device simulators such asembedded applications in websites or consumer electronics or acombination of these. Although for clarity only three devices 14 a, 14b, 14 c are illustrated in FIG. 1, there may be more devices 14connected via network 20. The illustrated devices 14 a, 14 b, 14 c maybe different types of devices. Devices 14 a, 14 b, 14 c may include aclient 16 which may be a computing application, application plug-in, awidget, instant messaging application, mobile device application, e-mailapplication, online telephony application, java application, web page,or web object residing or rendered on the respective devices 14 a, 14 b,14 c in order to access the functionality of system 10. Devices 14 a, 14b, 14 c will be described in more detail herein in relation to FIG. 2.

Device 14 is operable to carry out instructions and communicate with theserver system 18. The communication may be done directly via network 20or it may be done indirectly through removable storage or other means. Asingle device 14 a may support a single observer 12 a, such as theirmobile phone for example. A single device 14 b may also support multipleobservers 12 b, 12 c, such as an embedded application in a website orconsumer electronics for example. A single device 14 c may supportmultiple observers 12 d, 12 e and may contain multiple clients 16 d, 16e, one per observer 12 d, 12 e.

Client 16 may be a set of instructions running on a device 14 capable ofreceiving observer 12 feedback indicia and transmitting to server system18. Device 14 may come pre-loaded with a client 16, or may automaticallyupgrade itself with a client 16. An observer 12 may download or load aclient 16 on the device 14. The device 14 may be simulated in a websitethat contains the client 16. The device 14 contains hardware andsoftware modules to receive observer input data from input devices suchas a keypad, and hardware services for determining and recordingenvironmental indicia, for provision to the client 16. That is, device14 is operable to receive input data and provide the received input datato client 16. Client 16 is operable to convert the received input datainto feedback indicia. For example, device 14 may receive a value of 4as input data for provision to client 16. Client 16 is operable toprocess the input value to convert the value of 4 into feedback indicia.As another example, device 14 may receive biometric indicia such as aheart rate or pulse rate value as input data for provision to client 16.Client 16 is operable to process the input value to convert the heartrate or pulse rate value into feedback indicia such as a metricindicating how excited an observer 12. Device may also receiveenvironmental indicia as input data for provision to client 16. Client16 is operable to process the environmental indicia for conversion intofeedback indicia such as a metric indicating the geographic location ofthe observer 12. Examples of environmental indicia include but are notlimited to: date, time, longitude, latitude, altitude, acceleration,sound levels, images, videos, temperature, light levels, colors, smell,and so on. The client 16 converts the received input data into feedbackindicia and instructs the device 14 to send a transmission of thefeedback indicia to the server system 18. In addition, the device 14forwards transmissions of feedback results and other data received fromthe server system 18 to the client 16.

An observer 12 is an entity that observes the event 30 and conveys theirreaction by providing input data to a device 14 with a client 16. Forexample, the observer 12 may rate a sporting event on a scale of 1 to 10by providing rating values as keyboard input to device 14 throughout thegame. Client 16 is operable to convert the received input values (ratingvalues) into feedback indicia. An observer 12 responds to his or herperception of the event 30 by providing input data to the device 14 asreal-time feedback which client 16 converts into feedback indicia forprovision to the server system 18 as the event 30 occurs. If an observer12 is using a personal device 14 the observer 12 may be required toobtain a copy of the client 16 on their device 14. For example, anobserver 12 may download a client 16 from a computing applicationrepository. In some embodiments, the downloaded client 16 may beoperable to automatically update itself or its version number. In someother embodiments, the downloaded client 16 may be operable to notifythe observer 12 that a new version is available, and may update itselfor its version number if the observer 12 permits it, for example.Real-time may mean that the feedback is provided in real-time inrelation to the event timeline. For example, if the event is a liveevent then the feedback will be provided while the event is occurring orthereafter in reference to mileposts or a period or instance of time onthe event timeline. If the event is a recorded event then the client 16is operable to determine when in the event timeline the feedback wasreceived in order to correlate the received feedback to the eventtimeline. Real-time may mean that feedback indicia are received timelyand continuously. For example, for a sporting event the feedback indiciamay be received continuously via a slider bar (an example of a metaphor)where the device 14 enables an observer 12 to move the slider bar up anddown throughout the event 30. Each position on the slider bar maycorrespond to a rating value, which is an example of feedback indicia.In this example, device 14 and client 16 are operable to convert theposition of the slider bar into feedback indicia.

In various embodiments, the observer 12 uses the client 16 and device 14to register (or create an account) with the server system 18 after theclient is on the observer's 12 device 14. The observer 12 can use theclient 16 and device 14 to register for one or more events 30 and toprovide feedback indicia for one or more event. Registration (accountcreation) may include providing information such as name, phone number,email address, demographics, and geo-demographics, for example, whichmay or may not be provided to the host device 6 associated with theevent 30. When sufficient account information has been received from theclient 16 and device 14, the server system 18 assigns an observeridentifier and creates an observer record (indexed by the observeridentifier or other data relating to the observer 12).

In preparation for the event 30, the observer 12 uses client 16 toreview a list of available events. Events may be identified in the listby reservation identifiers, event identifiers, and other identifiers.The list of available events may be provided by the server system 18.Server system 18 is operable to generate a list of events by selectingone or more events that were previously registered by hosts 4. Observer12 uses device 14 to select an event 30 to evaluate from the list ofevents. The list may contain all publically available events, privateevents available for the specific observer 12, or events that are mostrelevant to the observer 12, such as those events geographicallyproximate to the observers 12 location, events for a certain time, orthose events that the observer 12 has been invited to, or a combinationthereof. Client 16 provides an interface to search for events and todisplay identified events.

During the event 30, the observer 12 can provide input data (whichcorresponds to feedback indicia) to the device 14 and client 16, and insome embodiments, the observer 12 provides input data (which correspondsto feedback indicia) using metaphors. The metaphors may be configuredand specified by the host 4, server system 18, or client 16. Metaphorsenable the collection of input data as feedback indicia and mayfacilitate the provision and receipt of feedback indicia. In otherwords, metaphors may be useable by the observers 12 to input a variablehuman feedback rating. Example metaphors include, but are not limited tosliders, questions, buttons, scale, rating, stars, icons and a point onan image. Other examples of metaphor include “odometers”, drop-downboxes, dials, number-choosers, search boxes, accordion panes,horizontal/vertical panes, checkboxes, “pickers”, “choosers”, “coverflows”, scroller, menus, lists, on/off switch, playback controls(reverse, play, forward), progress bar, radio buttons, tabs, tag cloud,tooltip, callout, “rating stars”, “rating thermometers”, “hot/cold”metaphors, joystick metaphor, time scroller, animated images, a video,gauges, sprites, keyboard, scales, hand gestures, simulated handgestures, clapping hands, clapping on the Internet by, for example,activation or repeated use of a button etc. If the metaphor is a slideror slider bar, then each position along the slider bar corresponds to arating value (feedback indicia). If the metaphor is a question then eachresponse corresponds to feedback indicia, and so on. Using the suppliedmetaphors, the observer 12 conveys their evaluation to the client 16 asinput data to the device 14. Also during the event 30, the observer 12may be able to see information received from the server system 18summarizing and aggregating the feedback from other observers 12 of theevent 30, feedback received so far from the observer 12 and provideinput data (which corresponds to feedback indicia) based on the feedbackresults for the event 30, and so on.

The client 16 may be a set of instructions for execution by a processoror application resident on a device 14. The client 16 is operable toauthenticate or register with the server system 18 so forthcomingtransmissions may be identified as coming through an identified client16. The client 16 requests from the server system 18 a list of events(identified as event identifiers, reservation identifiers, and so on)that are available to the observer 12. The client 16 displays the listof available events (or reservation identifiers, event identifiers andso on) from which the observer 12 can select. The client 16 relays theobserver 12 selections to the server system 18 to begin a session ofgiving/receiving event feedback indicia. The client 16 receives from theserver system 18 salient parts of the reservation for feedback for anevent made by the host 4 in order to capture and transmit observer 12feedback indicia to the server system 18. The client 16 may require thatfeedback indicia be received in accordance with the specifications andparameters, or may receive feedback indicia in any format. The client 16is configurable to utilize different themes, visual appearances or othervariations to display and capture input data as feedback indicia andother data. The client 16 may provide a manifestation of the observer's12 reaction (feedback indicia) through movements on the device 14 suchas touches on the device 14, vibration, keystrokes, pointing devices,and so on. The manifestation of the observer's 12 intent received asinput data may be transmitted to the client 16 through the device 14using the metaphors and other mechanisms for receiving input data. Theclient 16 is operable to convert the received input data intocorresponding feedback indicia. The client 16 is also operable toreceive environmental indicia supplied by the device 14.

When the client 16 obtains feedback indicia and other input data, it isoperable to transmit the feedback indicia and data to the server system18. The client 16 may perform processing and normalization on thefeedback indicia prior to provision to server system 18 in order toensure that the feedback indicia is a format compatible with the serversystem 18. The client 16 may use synchronous communication, asynchronouscommunication, batch communication and so on. Under certain conditionsthe client 16 and device 14 may not be able to access network 20 orconnect with server system 18, and in such case the client 16 willretain the data until transmission is possible. The client 16 isoperable to locally store a copy of all or part of the data transmittedto server system 18.

If specified by the host device 6, the client 16 may be entitled topackaged or aggregated information (feedback results) returned by theserver system 18 which may be received asynchronously, for example, tothe transmission of observer 12 input data and feedback indicia. Invarious embodiments, the server system 18 puts the received input datainto a relational database for immediate reuse and analysis, andtherefore presents feedback results as an event 30 occurs. In suchembodiments, completion of the event 30 by all observers 12 is not arequirement for analysis of the received feedback indicia. In some otherembodiments, the server system 18 processes the input data as it isbeing received by using data stream mining techniques. Data streammining is a process of extracting knowledge structures from continuous,rapid data records, such as the received input data. The client 16 isoperable to provide a user-interface to display feedback resultsgenerated by server system 18 for consumption by the observer 12.Examples of consumable forms include text, graphs, charts, grids,images, metaphors, video and so on. For example, a chart may plotaggregate feedback results received from all observers 12 against timecorresponding to an event timeline. The client 16 may also juxtapose orcompare the observer's 12 own feedback results against the feedbackresults of other observers 12, or receive such comparison data from theserver system 18 in the form of feedback results for display to observer12. For example, a chart may plot feedback values received from specificobservers 12 against aggregate feedback results received from all otherobservers 12, or a subset thereof.

Server system 18 comprises one or more servers with computing processingabilities and memory such as database(s) or file system(s). For example,server system 18 may include a mail server, web server, database server,application server, message queue server and so on. Although only oneserver system 18 is shown for clarity, there may be multiple serversystems 18 or groups of server systems 18 distributed over a widegeographic area and connected via e.g. network 20. For each event 30tracked by system 10, server system 18 is operable to register an eventrecord and assign an event identifier to the registered event record.The event record is associated with an event 30 and an event timeline,which defines a period of time for the event. Server system 18 isoperable to uniquely identify and correlate feedback indicia for eachevent using reservation identifiers, event identifiers, and otheridentifiers. Server system 18 receives feedback indicia for the event 30from a plurality of devices 14 operated by event observers 12. Eachfeedback indicia is associated with an event timestamp that isassociated with a point in time within the event timeline. In someembodiments, the feedback indicia is based on an ISO 8601 standard (alsoknown as a Unix time standard, or wall time) so that the feedbackindicia can be compared with events within or outside of the system 10,for example. In some other embodiments, the feedback indicium is basedon the elapsed time, or the runtime, of the event 30. In variousembodiments, the runtime is derived from the wall time. Server system 18is operable to store the received feedback indicia for the event 30 inassociation with the event record. Server system 18 is operable togenerate feedback results for the event based on received feedbackindicia. The feedback results include a vector of feedback result valuesfor the event, where each feedback result value is associated with apoint in time within the event timeline, and computed by aggregating thereceived feedback indicia for the event based on their associated eventtimestamps. For example, at a point in time within the event timelinemultiple observers 12 may provide feedback indicia. Server system 18 isoperable to aggregate the feedback indicia received from all observers12 and linked to that point in time. Server system 18 is operable toprovide a representation of the feedback results to host device 6,device 14, beneficiaries 22 (such as an interested party 24 or a proxy26), or other device.

Server system 18 coordinates activity and data among hosts 4, observers12, milepost creators 29, and beneficiaries 22, such as an interestedparty 24 and proxy 26. Before the event 30, the server system 18 isoperable to receive data from the host device 6 and host client 8. Theserver system 18 is operable to authenticate and authorize the host 4,host device 6, and the host client 8 to provide information necessary toregister the event by creating an event record, and to create areservation for receiving feedback data for the event 30 and generate acorresponding reservation identifier. The data received from the hostdevice 6 is stored for use when observers 12 observe the event 30 byproviding input data that corresponds to feedback indicia. Ifreservations of other systems are required (e.g. cloud capacity), theserver system 18 is operable to make the appropriate reservations. Whensufficient data is received for event registration, the server system 18generates an event record or a reservation for receiving feedback for anevent 30.

The server system 18 sends a client 16 a list of events 30 identified byevent identifiers, reservation identifiers and so on. The list of events30 includes events 30 granted public access by hosts 4 and events 30granted access to the observer 12 by hosts 4, and other relevant events.The host 4 may communicate event invitations and the server system 18may also be directed by the host 4 to send event invitations by push orpull technology for example. Server system 18 may send an electronicinvitation prompting for feedback indicia for an event 30 to the devices14, where the electronic invitation configures the device 14 to sendfeedback indicia for the event 30.

Before receiving feedback indicia and generating and providing feedbackresults for the event 30, the server system 18 communicates with theclient 16 to configure how the client 16 manifests itself to theobserver 12. An initial metaphor or manifestation may be changed by theserver system 18 during an event 30 in response to received input data,feedback indicia, feedback results, and so on. As the event 30progresses, the server system 18 receives the observer 12 feedbackindicia sent by the client 16 on the device 14. In some embodiments, theserver system 18 uses the pull technology, where the server system 18polls the device 14 or client 16 to pull the data from the device 14. Insome other embodiments, the server system 18 uses the push technology,also known as an “event-driven” model, to receive feedback indicia fromthe device 14 or client 16. In other words, only the observer-createdevents are pushed to the server system 18 when they occur. In an exampleusing a “slider” metaphor, the only positions recorded are due to themovement of the slider by the observer 12. When the slider is stationarybecause of no change in the observer input, no information is recorded.This may introduce more efficiency in the system 10 by not recordingredundant data and by precisely recording the time when the observeractually provides an input, such as by moving the slider. The use ofpush technology also prevents the transmission of redundantenvironmental indicia or data to the server system 18; only a change inthe environmental indicia is transmitted. The server system 18aggregates and processes the received feedback indicia from allobservers 12 for use in the analyzing, packaging, and distributingfeedback results. The server system 18 analyzes the raw feedback indiciaincluding but not limited to: aggregating the received feedback indiciausing a correlation based on an event or feedback timestamp, analysis ofthe data for purposes of validation, including checks for counterfeitsubmissions or incorrectness, validating format of feedback indicia,generating feedback results, generating comparisons for specificobservers 12, analysis of the data for greater understanding of theobserver 12 intent including but not limited to removing bias orstatistical noise in the data (examples of validation), and processingof the data so that it can be more easily or completely understoodincluding but not limited to correlating it with the environmentalindicia or other data and/or summarizing feedback results in charts,graphs, tables and any other form for presentation. The server system 18may aggregate and analyze the input data or feedback indicia based onmany characteristics, such as for example, time of rating of the event30 by observers 12, time the rating is sent to the server system 18, orGPS locations of the observers 12 etc.

The server system 18 may be the computational resource that receives,aggregates, analyses, packages, and distributes observers' 12 feedbackdata (including feedback indicia and feedback results). The serversystem 18 is operable to package the feedback results according to thespecification given by the host 4. This includes but is not limited tometaphors used in collecting the data, the number of observers 12(actual and invited), the time spent by observers 12 using themetaphors, geographic location, type, duration and number of data pointsprovided by the observers 12, statistical analysis generated fromobservers 12 moment-by-moment reactions to the event 30, comparison ofone set of observer 12 reactions to another set of observers 12,statistical filtering to remove noise in the data, biases detectedduring the event 30, validation information, raw data in export formats(e.g., CSV, XML, JSON, etc.), and so on.

The server system 18 is operable to distribute the packaged informationand feedback results according to requests received from the host client4 or client(s) 16. If authorized by the host 4, the server system 18 isoperable to transmit the feedback results (or a portion thereof)immediately back to each client 16 on the device 14. If authorized bythe host 4, the server system 18 is operable to make the informationsuch as the feedback results available to authorized beneficiaries 22 insuch forms such as reports, web services, exported data formats, and soon.

An event timeline defines a period of time for the event 30. The eventtimeline may define a collection of mileposts, where each milepost maybe a reference to a point in time within the event timeline. The eventtimeline may be annotated to indicate when certain moments of the events30 are of particular interest. Milepost creator 29 may create milepostswithin the event timeline. Although shown separately in FIG. 1, theclient 16, the host client 8, and server system 18 may each contain amilepost creator 29, or a combination thereof. The milepost creator 29defines mileposts of the event timeline that are used to aggregate,chart and compare received feedback indicia. Milepost creator 29 mayidentify a point or period of time on the event timeline as milepostbefore or after feedback indicia has been received in relation to thatperiod of time or milepost. The client 16, the host client 8, and serversystem 18 are operable to associate at least some of the receivedfeedback indicia with one or more mileposts. For example, the feedbackindicia may include an indication that it is associated with a milepost,or the event time stamp associated with the received feedback indiciamay correlate to a milepost of (point in time of the event timeline).Examples of mileposts include the moment of conflict resolution in amovie plot; the throwing of a knock-out punch in a boxing event; or the“funny” part of a YouTube video; the end of an inning or period insporting event; a goal; and so on. The annotation to the timeline orcreation of mileposts may be made before, during, or after the observers12 observe the event 30 by providing feedback indicia. The milepostannotations are used to correlate observers' 12 feedback indicia toimportant moments identified within an event 30. A milepost is areference to a point in or period of time in an event timeline. It mayoptionally include a description. A milepost creator 29 is an entitythat creates mileposts on the event timeline.

In some embodiments, the host 4 or other beneficiaries 22 may only beinterested in receiving feedback with respect to one or more segments ofinterest within an event 30. For instance, for an event such as afootball match being broadcasted live, certain parties, such asadvertisers, may only be interested in receiving feedback regardingadvertisement segments during the duration of the match. In suchsituations, creation of mileposts may facilitate comparison oraggregation of received feedback. In the football match example, theidentification of a point or period of time of interest within the eventtimeline might be complicated if the match is being broadcasted ondifferent channels where the various channels have a slight time delaywith respect to each other. Further complications may arise if certainchannels decide to play the advertisement segments of interest to anadvertiser in different order or at different times than some otherchannels during the duration of the match.

Similar to the football match example, determining segments of interestwithin an event timeline may be complicated with respect to certainother events, such as a Broadway show, where the event may occurmultiple times (such as every night for a week, or weekly for a monthetc.) Receiving and aligning feedback from observers 12 watching theperformance on various nights to determine the progress or popularity ofthe show, or to compare feedback for the show “night-after-night,” mayrequire use of mileposts. However, some complication may arise since theevent may not start at the same time each night it is performed and mayhave a slightly different duration or length of performance on differentnights. In other words, either the start time of the event may vary eachtime it is performed (such as the show may start at 8:00 p.m. on onenight but 8:10 p.m. on the next night) or the length of the event mayvary each time it is performed (such as on one night the show may be 90minutes long, but on the next night, it may be 100 minutes long).Further complication may arise if, for instance, the producers areinterested in comparing feedback results with respect to a performanceby a leading lady of the show every night where the leading lady of theshow commences performance 10 minutes into the show on one night, but 15minutes into the show the next night.

In order to enable the comparison or aggregation of feedback receivedfrom different observers 12 from different channels or different nights,a tag or label may be provided by a user or a host or any third party,where the tag or label, along with other related information about thesegment of interest, may facilitate the determination of the start andend times of the segment. In some embodiments, an observer 12 or a thirdparty may themselves, using the client 16, relay the segment start time,along with the segment duration, to the milepost creator 29. In someother embodiments, an observer 12 or a third party may relay the segmentstart time and the segment end time to the milepost creator 29. In yetother embodiments, segment start time, segment duration or segment endtime may be automatically determined based on the tag or label providedto the milepost creator 29.

The milepost creator 29 may be operable to use the segment relatedinformation (for instance, such as segment start time, segment durationor segment end time) to analyze feedback data corresponding to thatsegment. In one embodiment, the milepost creator 29 may adjust thevarious feedback data and the associated timestamps to correspond to acommon timeline, thereby facilitating an easy comparison of variousfeedback results. For instance, referring back to the Broadway showexample, the milepost creator 29 may aggregate feedback results for eachnight based on a common timescale, thereby making it easy to compare theobserver response from one night to observer response from anothernight.

Milepost creator 29 may be configured to automatically create milepostsin the event timeline from triggers in the event. For example, for liveevents one knows certain types of triggers/actions will occur but do notknow the exact time that these will occur. Examples of triggers may bescoring a goal in a hockey or soccer game, the beginning or end of aboxing round, the appearance of a singer in a talent-related reality TVshow, a speaker taking the microphone at various times during apolitical debate.

Milepost creator 29 may be configured to allow a host 4, whenregistering an event 30 or making a reservation, to select or entertypes of triggers and the corresponding milepost. When a trigger actionoccurs, the host 4 may signal that the trigger action has occurred tocreate the corresponding milepost. Alternatively, the milepost creator29 may receive trigger signals from any third party to automaticallycreate mileposts without host 4 involvement. This may be, for example, athird party service that sends alerts any time an action has occurred ina sporting event. In some embodiments, input to the server system 18 canbe provided by a device that directly measures the event 30. Forexample, in a Broadway show, a mixing board can be used to send signalsidentifying a sound mix as input to the server system 18, or a lightboard can be used to send signals identifying when certain lights areadjusted in brightness or color as input to the server system 18.Another example is of a sporting event such as football, where a devicedetecting a whistle of a referee can send a signal as an input to theserver system 18 upon detection of the whistle; likewise a devicedetecting a goal in a hockey or basketball game can send a signal as aninput to the server system 18 upon detection of the goal. Anotherexample is of a marching band, where a device could be strapped to thewrist of a drum major to detect a “beat” of the corps, and a signal canbe send as input to the server system 18 upon detection of the beat. Insuch embodiments, the measuring of the event 30 by a device could beused in the detection of mileposts.

In some embodiments, a host 4 or any third party may provide a thresholdamount to the milepost creator 29, where the threshold amount is used todetermine if a trigger event qualifies as a milepost. The milepostcreator 29 may be operable to analyze all the feedback received from anobserver 12 with respect to an event to determine a significant changein the received feedback. The threshold amount may be used to determineif a change is significant or not. If a significant jump or a drop inthe feedback data is identified, it may tentatively signify a milepost.The milepost creator 29 may then compare the various tentative milepoststo determine confirmed mileposts.

In some other embodiments, the milepost creator 29 may first aggregateall the received feedback before identifying a significant change (ajump or a drop) in the aggregate results by comparing it to a thresholdamount.

Furthermore any milepost created from a trigger action may further causea change in the user interface of client 16 or change in metaphor. Theserver system 18 may further be configured to allow a host 4, whenregistering an event 30, to select how the metaphor will change inresponse to the creation of a milepost. For example, the scoring of goalin a sporting event may cause a metaphor showing “cheer” and “boo” toappear at the client so that the observer can provide feedbackpertaining to the trigger action in the event 30.

Milepost creator 29 may be configured to create mileposts automaticallybased on, for example, observer 12 feedback indicia. For example, peeksor drops in viewer ratings, or increases or decreases in the number ofviewers providing feedback, might identify a milepost.

A beneficiary 22 may be an entity deriving value from the analysis ofthe observation data and generated feedback results. Examplebeneficiaries include event producers, advertisers, observers 12, hosts4, and so on. Beneficiaries 22 may be sub-categorized as interestedparties 24, proxies 26, milepost creator 29 and event transformers 28.Although shown separately in FIG. 1, one or more of interested parties24, proxies 26, milepost creator 29 and event transformers 28 may beillustrated within beneficiaries 22 as it is a sub-category thereof.Interested parties 24 may be any user interested in the information andfeedback results. Event transformers 28 may be entities that usefeedback results to alter the progression of the event 30. Proxies 26may be entities that convey the feedback results and data derived fromthe feedback results to an interested party 24. A proxy 26 may be abeneficiary that conveys the value of the packaged data to anotherinterested party.

In accordance with some embodiments, the host 4 may specify if thefeedback results are available for a beneficiary 22. A beneficiary 22may be an entity, such as for example a person, computing program orcomputing device that receives analyzed information (such as feedbackresults) distributed from the server system 18 and derives value fromthe analysis of observer 12 feedback indicia and other data. This may ormay not be the host 4. Beneficiary-types include event transformers 28,interested parties 24, milepost creators 29, and proxies 26. In someembodiments, the host 4 may configure the server system 18 to output orpost the real-time analysis of the feedback indicia to third partysocial media applications, such as for example, Facebook, Twitter etc.The server system 18 is operable to receive configuration parametersfrom one or more host 4, observer 12, and beneficiaries 22 in order togenerate a specific type of feedback results tailored to the respectivehost 4, observer 12, beneficiary 22, or other third parties. That is,server system 18 is operable to generate and provide different feedbackresults for different hosts 6, observers 12 and beneficiaries 22 etc.For example, a host 4 who creates a reservation for feedback for anevent may specify as configuration parameters to set the scope offeedback indicia and feedback results that may be provided to abeneficiary 22. As a further example, a beneficiary 22 may specify theformat of the feedback results that it is permitted to receive.

An event transformer 28 is a beneficiary that uses packaged information(including feedback results) to alter the progression of the event 30.An event transformer 28 may be entities that use feedback results toalter the progression of the event 30 and may be a gateway to a feedbackloop. An event transformer 28 may be used by server system 18 if part ofan event 30 can be modified automatically. The event transformer 28 mayprocess the feedback results in order to automatically determine how theevent should unfold or the server system 18 may process the feedbackresults to determine how the event should unfold and instruct the eventtransformer 28 accordingly. Examples of parts of an event 30 that can bemodified include the order of songs performed in a concert, topicschosen during a speech, charts shown during a presentation, media thatsupport alternative formats, a dynamic story line, and so on. The eventtransformer 28 is a specific type of a beneficiary 22. When the eventtransformer 28 receives the feedback results or instruction from theserver system 18, it may alter the course of the event 30. The eventtransformer 28 is operable to make decision on how the event 30 shouldprogress given the options available at that time for the event 30.Example modifications include reordering the list of songs to be played,modifying the text to be put on a teleprompter, or digitally creating orreordering the story being told in an animation, movie or play. Otherexamples might be a digital animation created in real time to match theresponse from the observers 12 or a presenter altering his or herpresentation (i.e., the event 30 being observed) in real time toincorporate the feedback from the observers 12 in the audience. Once theevent transformer 28 has modified the event 30, the observers 12 see thealtered progression of the event 30. The observers 12 continue toprovide feedback via the client 16, forming a feedback loop.

Feedback indicia and feedback results may be provided to an eventtransformer 28 in real-time, but in some embodiments it need not bereal-time. The feedback indicia and results extend over the eventtimeline, and thus can be correlated with particular mileposts, objectsor characters in an event 30.

For example, consider an event 30, such as a television show, with aplurality of participants. At different times within an episode of theshow, different participants will be shown or not shown, and sometimestwo or more participants may be shown interacting. Based on observer 12feedback indicia that are correlated with the timing of the show (theevent timeline), television producers can determine if an observersrating of the show goes up or down when a particular participant isinvolved, and transform the storyline using components of an eventtransformer 28. This can also be done for combinations of participants.For example, participant A and participant B may not be very popular ontheir own, but may be very popular in their interaction with oneanother.

This need not only be for participants. For example, on a show theremight be different routes that can be taken. Observers 12 might be muchmore engaged with one route than the other.

Another example transformation may be a story or a narrative that has anumber of alternate endings. These alternate endings differ from oneanother in terms of how some characters do relative to other characters,and how often some characters appear in these endings relative to otherendings. For example, given five endings one to five, and fourcharacters A, B, C and D, character A may be more prevalent in endingone than all the other characters, character B may be more prevalent inending two then all the other characters, character C may be moreprevalent or appear more often in ending 3 than all of the othercharacters, and character D may appear more often in ending 4 than anyof the other characters. Also, the endings may be distinguished from oneanother based on how characters do. That is, character A may be moreprevalent in endings one and five than all of the other characters;however, in ending one, character does well, while in ending five,character A comes to a bad end.

Another example may be in the context of advertising. For example, somesongs are more popular than other songs. The event transformer 28 may beoperable to reorder the songs based on their popularity. In addition,system 10 may sell advertising based on the popularity of the songs, andalso based on demographic information regarding each of the songs. Thus,if one song is much more popular than another, then an advertiser maypay more to sell advertising in association with that song. On the otherhand, if one song is more popular with mature females, while anothersong is more popular with adolescent males, then differentadvertisements may be targeted for each these songs.

An interested party 24 is a special case of a beneficiary 22 that isinterested in studying and further processing the feedback results andother packaged data received from server system 18. An interested party24 uses event related data for a purpose of interest.

A proxy 26 is a special case of a beneficiary. The role of the proxy 26is to receive feedback results and use some or all of the feedbackresults as selected by the observer 12 within the limits allowed by theproxy 26. An example might be that an observer's 12 Facebook page wouldhave a widget, embedded application or a plug-in that shows theirreaction in real-time to any event 30, such as for example a TV showcurrently being watched. A plug-in is a set of software components thatadds specific capabilities to a larger software application. The proxy26 can provide feedback results to other interested parties 24.

An account identifier is a unique identifier for each observer 12-device14 pairing. Its purpose is to collate stateless, asynchronoustransmissions to the server system 18. Similar techniques includecookies and session identifiers. As discussed previously, in someembodiments, the server system 18 issues a unique observer identifierand an observer record in response to registration of an observer 12.This enables the observer 12 to use one or more different devices 14 inthe future, without having to re-register the observer 12-device 14pairing. Likewise, this also enables the same device 14 to be used bydifferent observers 12. In various embodiments, issuing of a uniqueidentifier to the observer 12 along with creation of an observer recordmay enable the server system 18 to suggest events 30 to the observerbased on what he has observed, evaluated and enjoyed in the past. Theunique identifier for each observer 12 may be in the form of a userid-password combination.

In some other embodiments, the server system 18 issues a uniqueidentifier to the device 14 only. This may allow an observer 12 toobserve and evaluate an event 30 even if the observer 12 does not desireto sign up or register to obtain a unique observer identifier. Theunique identifier for each device 14 may be based on all or some of thefollowing parameters, such as for example, device name, device model,operating system, operating system version etc. By issuing a uniqueidentifier for an observer 12, device 14 or both, server system 18 candifferentiate among various observers 12 during the analysis of receivedfeedback indicia.

In some other embodiments, the server system 18 may not generate aunique identifier for an observer 12, device 14 or both, in which case,the server system 18 may differentiate among different observers 12based on their GPS information, such as for example, longitude,latitude, altitude etc. Other environmental indicia may also be used.

The event identifier is a unique identifier associated with an eventrecord, and is used to identify an event. This identifier may be used tocollate data across reservations for observing the same event, andcollate received feedback indicia for the same event, and so on. Anevent identifier is assigned to an event record in order to identifydata for the event.

The reservation identifier is a unique identifier issued by the serversystem 18 for each host 4-event 30 pairing, in general. In general, areservation for an event is a reservation that specific feedback indiciawill be received for that event. Multiple reservations may be made forone event, in order to, for example, collect different types of feedbackindicia for the same event. A host 4 may create multiple reservationsfor the same event 30, so the reservation identifier may be specificallya unique identification of a (host 4, event 30, instance) tuple, as anexample.

The reservation identifier is created in response to a host device 6registering a reservation for receiving feedback for an event 30 withserver system 18. The reservation identifier is used to inform theobserver 12 of the event 30 for which feedback is requested. Thereservation identifier is used by the server system 18 to collate allactivities for the host's 4 request, collate feedback indicia receivedin relation to the reservation, and so on.

An invitation may be an announcement of the host 4 creation of areservation and assignment of a reservation identifier for use duringfeedback indicia collection for the event 30. The invitation may havetwo manifestations. First, the invitation may be a communication betweenthe host 4 and observers 12 announcing the request for feedback on anevent 30.

Second, the invitation may be a host 4 specified list of which observers12 are granted the privilege of providing feedback on an event 30. Inthis scenario, the reservation identifier (or other data describing thereservation) may show up on the clients 16 of authorized observers 12.The public, in general, may not receive notice if the reservationindicates that it should be private and limited to certain observers 12.

The server system 18 may send reminders of invitations prior to an event30.

Reference is now made to FIG. 2, which illustrates a block diagram of adevice 14 (including host device 6) in further detail. In an exemplaryembodiment, device 14 has associated with it a display 32, a centralprocessing unit 34, input output devices 36, a network interface 38, amemory store 40, peripherals 42 (e.g. internal or external hardwareservice modules) including a global positioning system 44, applications46, and client 16 (or host client 8). The display 32 may be a monitor ordisplay screen that is used to electronically display data. The inputoutput devices 36 may be any device that allows for input, examples ofwhich may include, but are not limited to, keyboards, microphones,speakers, and pointing devices. The memory store 40 include any type ofcomputer memory that is located either internally or externally to thedevice 14 such as, for example, random-access memory (RAM), read-onlymemory (ROM), compact disc read-only memory (CDROM), electro-opticalmemory, magneto-optical memory, erasable programmable read-only memory(EPROM), electrically-erasable programmable read-only memory (EEPROM),flash memory, USB drives, memory cards, solid-state drive, hybrid drivesor the like. The central processing unit 34 is used to executeinstructions for operation of the device 14 and may include any type ofprocessor, such as, for example, any type of general-purposemicroprocessor or microcontroller, a digital signal processing (DSP)processor, an application-specific integrated circuit (ASIC), aprogrammable read-only memory (PROM), or any combination thereof. Thenetwork interface 38 may be a wired and/or wireless network interfacethat allows the device to connect to the network 20. Device 14 may alsoinclude peripheral devices 42, such as printers, antenna, transceivers,speakers, camera, microphone, global positioning system 44, sensors,scanners, and other input output devices 36. Applications 46 provideadditional services to device and interact with input output devices 36,peripherals 14 and other components of the device 14.

Reference is now made to FIG. 3 which illustrates a block diagram of aclient 16 for capturing event feedback in accordance with at least oneembodiment, In this example embodiment, client 16 comprises atransmission module 50, user interface module 52, data processor 54, andmetaphor generator module 56.

Transmission module 50 may be configured to synchronize to an eventrecord stored on a remote computer-readable storage module, such asserver system 18 for example. As described herein the event recordrepresents an event of interest such that transmission of event feedbackat the transmission module is configured to link the event feedback tothe event record.

User interface module 52 is configured, at a plurality of differenttimes during an event timeline, to receive the event feedback asfeedback indicia associated with the event of interest. These differenttimes may define time segments of approximately equal length;alternatively, the different times may define time segments that varywidely in length.

Data processor 54 is configured to assemble a feedback indicia arrayusing the feedback indicia. The feedback indicia array stores theplurality of different times and an associated plurality of feedbackindicia. For each time in the plurality of different times, the feedbackindicia array comprises a time indicium pair. The time indicium pair maybe referred to as a (time, indicium) pair. The time indicium pair mayinclude a “time” entry and an “indicium” associated with that time, i.e.the pairing of the time and the associated feedback indicium. An eventtimeline defines a period of time for the event for that client 16.

In some embodiments, the transmission module 50 is configured, duringthe event timeline, to provide the event feedback by periodicallytransmitting each time indicium pair in the feedback indicia array to aremote data processing module (such as on server 18) until all of thefeedback indicia array is transmitted to the remote data processingmodule. The transmission of each time indicium pair in the feedbackindicia array is configured to link the time indicium pair to the eventrecord.

In some embodiments, transmission module 50 is configured to synchronizeto the event record stored on the remote computer-readable storagemodule (such as on server 18) to link the feedback indicia array to theevent record by transmitting an event identifier identifying the eventrecord to the remote data processing module.

In some embodiments, the transmission module 50 is configured totransmit the event identifier with each time indicium pair in thefeedback indicia array to the remote data processing module (such as onserver 18).

The transmission module 50 may also be configured to synchronize to theevent record stored on the remote computer-readable storage module tolink the feedback indicia array to the event record by transmitting eachtime indicium pair in the feedback indicia array to a location. Thelocation may identify the event record. As mentioned above, the term‘location’ may mean a physical or virtual location, such as anidentified resource. For example, ‘location’ may refer to a uniformresource identifier, which may be classified as locators, names, orboth.

The user interface module 52 may be configured, for the event ofinterest, to receive human feedback indicia. The associated plurality offeedback indicia stored in the feedback indicia array may then alsoinclude a plurality of human feedback ratings. A human feedback ratingmay be provided by a user of the computing device, such that for eachtime in the plurality of different times, the feedback indicia arraycomprises a time human indicium pair comprising that time and anassociated human feedback rating in the associated human feedbackratings.

In some embodiments, transmission module 50 is, during a delayed timeinterval overlapping with the event timeline, configured to receive anaggregate feedback array determined at the remote data processingmodule. The aggregate feedback array may be determined by aggregatingthe time indicium pairs transmitted to the remote data processing modulewith other feedback indicia associated with the event received fromother users.

For each time, the aggregate feedback array may include a runtime valueand an aggregate result pair. The runtime value may be associated with apoint in time within the event timeline. The aggregate result may bedetermined at the remote data processing module from the associatedfeedback indicium in the time indicium pair for that runtime value.

The transmission module 50 may be configured, for each time in theplurality of different times, to periodically receive the runtime valueand aggregate result pair. In some embodiments, the transmission module50 may be configured, for a particular time in the plurality ofdifferent times, to only receive that runtime value and aggregate resultpair when the aggregate result corresponding to that runtime value isnot the same as the aggregate result corresponding to an immediatelyprevious runtime value. In other words, if the aggregate result forruntime value ‘a’ and runtime value ‘b’ are the same, where runtimevalue ‘a’ comes immediately before runtime value ‘b,’ the transmissionmodule 50 may be configured to not receive one of these runtime valueaggregate result pair to avoid duplication. In various embodiments, thecommunication module 62 of the server system 18 is configured to onlytransmit that runtime value and aggregate result pair when the aggregateresult corresponding to that runtime value is not the same as theaggregate result corresponding to an immediately previous runtime value.Duplicate data refers to the same data or aggregate result, and may notrefer to the same data or aggregate results received at different times,or for different runtime values. In other embodiments, all data values,or aggregate results, including duplicates, are received andtransmitted. Duplication avoidance may occur because of an understandingbetween the server system 18 and the device 16 that duplicate aggregateresults sampled next to each another may not be sent to the device 16 inorder to save device power used to receive signals. In such embodiments,the device 16 may be configured to assume the same aggregate result overa duration of time until a new runtime value and aggregate result pairis received. In other words, the understanding between the server system18 and the device 16 may be that if no runtime value aggregate resultpair is received by the transmission module 50, then no change in theaggregate result for the subsequent runtimes is assumed until a newruntime value aggregate result pair is received. A sequence of runtimevalue aggregate result pair, such as {(T1,6), (T6,3), T(9,7)} may bereceived by the device 16 to mean {(T1,6), (T2,6), (T3,6), (T4,6),(T5,6), (T6,3), (T7,3), (T8,3), T(9,7)}. In some other embodiments, theunderstanding between the server system 18 and the device 16 may be thatif no runtime value aggregate result pair is received by thetransmission module 50, then the aggregate result for the subsequentruntimes is assumed to be ‘null’ until a new runtime value aggregateresult pair is received. In such embodiments, a sequence of runtimevalue aggregate result pair, such as {(T1,6), (T6,3), T(9,7)} may bereceived by the device 16 to mean {(T1,6), (T2,null), (T3,null),(T4,null), (T5,null), (T6,3), (T7,null), (T8,null), T(9,7)}. In otherembodiments, all runtime value and aggregate result pairs transmittedfrom the communication module 62 of the server system 18 are received bythe transmission module 50 of the device 16.

The transmission module 50 may be configured to receive some of theruntime value and aggregate result pairs during the event timelinebefore transmitting some associated feedback indicia in the associatedplurality of feedback indicia to the remote data processing module.

The transmission module 50 may be configured to wirelessly transmit thefeedback indicia array to the remote data processing module andwirelessly receive the aggregate feedback array from the remote dataprocessing module.

During the event timeline, the client 6 may be configured toprogressively display more of the time indicium pairs and the runtimevalue and aggregate result pairs.

The client 16 may comprise at least one sensor device, such as a heartrate sensor, a pulse rate sensor, a temperature sensor, a sound levelsensor, a light level sensor, a GPS location sensor, an image sensor, anolfactory sensor, a speech sensor, and so on. The sensor device may beconfigured, at each time in a plurality of different sensor measurementtimes during the event timeline, to measure a sensor feedback value toprovide a plurality of sensor feedback values. A sensor feedback valuemay be one of biometric feedback indicating a biometric characteristicof a user and environmental feedback indicating an environmentalcondition around the user. In some embodiments, sensor devices may alsobe used to provide human feedback indicia. For example, a speech sensormay be used to receive feedback indicia based on an observer 12 speakingto the speech sensor device 16. In some cases, the speech may then betranslated into text and the text may be used to send feedback indicia.In another example, for events such as marching, ice skating, or boxingcompetitions, the judges or other individuals may provide feedbackindicia by saying sport-specific terms or phrases into the sensordevice. Some of those terms or phrases may have an impact of providingpositive feedback indicia, for example by adding points to the eventscores. Some of the other terms and phrases may have an impact ofproviding negative feedback indicia, for example by deducting pointsfrom the event scores. In yet other embodiments, a milepost creator 29may create mileposts using sensor devices, such as for example a speechsensor device. This may be done by a milepost creator 29 speaking intothe sensor device terms or phrases that may signify creation of amilepost. For example, a milepost creator 29 (such as a person) mayspeak into the sensor device a term, such as ‘goal,’ to mean that abasketball has gone through the hoop or a hockey puck has gone into thenet and accordingly a milepost is created for that goal.

In some embodiments, the data processor 54 may be configured to receivethe at least one sensor feedback value measured at the sensor device anda corresponding sensor measurement time, and assemble a sensor feedbackindicia array therefrom. The sensor feedback indicia array storesdifferent sensor measurement times and an associated sensor feedbackvalues, such that for each time in the plurality of different sensormeasurement times, the sensor feedback value may include a sensormeasurement time sensor feedback value pair with that time and anassociated sensor feedback value in the associated plurality of sensorfeedback values. The transmission module 50 may be configured, duringthe event timeline, to periodically transmit each sensor measurementtime sensor feedback value pair in the sensor feedback indicia arrayalong with each time human indicium pair in the human feedback indiciaarray to a remote data processing module until all of the sensorfeedback indicia array and the human feedback indicia array istransmitted to the remote data processing module.

In some embodiments, each sensor measurement time sensor feedback valuepair transmitted to the remote data processing module may not be in anyparticular order with respect to time (for instance, may not be in anascending or descending order with respect to time). In other words, apair comprising a sensor measurement time ‘b’ and a corresponding sensorfeedback value may be transmitted before another pair comprising asensor measurement time ‘a’ and a corresponding sensor feedback valueeven if the sensor measurement time ‘b’ occurs after the sensormeasurement time ‘a.’ Similarly, in some other embodiments, each timehuman indicium pair transmitted to the remote data processing module maynot be in any particular order with respect to time. In some embodimentsand contexts, it may be more efficient, in terms of data transmissionrates, to order data transmission in a non-timewise manner.

In some embodiments, the different sensor measurement times in thesensor feedback indicia array and the different times in the humanfeedback indicia array may coincide, and the transmission module 50 maybe configured, during the event timeline, to periodically transmit eachtime in the human feedback indicia array and the associated humanindicium and sensor feedback value as a three-tuple to the remote dataprocessing module. In some other embodiments, the transmission module 50may be configured to send an n-tuple including a timestamp, and aplurality of human feedback indicia and a plurality of sensor feedbackvalues, all corresponding to that timestamp. For example, at a giventime, the plurality of human feedback indicia may include an x-position,a y-position, gesture etc. and the plurality of sensor feedback valuesmay include values measured by different sensors, such as heart ratesensor, a pulse rate sensor or a temperature sensor. This n-tuple may berepresented as a data structure of the form (timestamp,human-feedback-type1, human-feedback-type2, human-feedback-typeN,sensor-feedback-type1, sensor-feedback-type2, . . . ,sensor-feedback-typeN), where each of the human-feedback-type1,human-feedback-type2, human-feedback-typeN, sensor-feedback-type1,sensor-feedback-type2, . . . , sensor-feedback-typeN correspond to thesame timestamp.

In some embodiments, the different sensor measurement times in thesensor feedback indicia array and the different times in the humanfeedback indicia array may coincide. In some other embodiments, thedifferent sensor measurement times in the sensor feedback indicia arrayand the different times in the human feedback indicia array may notcoincide.

In some embodiments, each sensor measurement time sensor feedback valuepair and each time human indicium pair transmitted to the remote dataprocessing module may be in random order with respect to each other. Inother words, the transmission module 50 may be configured to transmit atime human indicium pair after transmitting a plurality of sensormeasurement time sensor feedback value pairs, or vice versa. Forexample, the transmission module 50 may be configured to transmit a(time_(hfa), human feedback) pair after transmitting (time_(sfa), sensorfeedback) pair and (time_(sfb), sensor feedback) pair, where time_(hfa)and time_(sfa) coincide, and time_(sfb) occurs after time_(sfa).

The clients may also include a metaphor generator 56. The metaphorgenerator may be operable to configure a plurality of metaphors suchthat each metaphor in the plurality of metaphors is providable at thecomputing device 14 and usable by the observer 12 to input a variablehuman feedback rating.

In some embodiments, the user interface module 52 may be configured toreceive from the user a request for a metaphor in the plurality ofmetaphors configured by the metaphor generator and to provide themetaphor requested by the user. The user interface module 52 may thenreceive, at a plurality of different times during the event timeline,human feedback using the metaphor provided. The data processor 54 may beconfigured to convert the human feedback received using the metaphorinto the human feedback indicia array. Each human feedback indicia arrayin the associated plurality of human feedback indicia arrays may includea mapping of the human feedback received using the metaphor into anumerical value and each time corresponding to the human feedback in thedifferent times which include the time at which the human feedback wasreceived. The mapping of the human feedback into a numerical value maybe based on mapping information provided by the event recordrepresenting the event of interest.

The transmission module 50 may be configured to transmit an indicationof the metaphor provided at the computing device to receive humanfeedback from the user to the remote data processing module, and receivethe aggregate feedback array determined by the remote data processingmodule. The aggregate feedback array may be determined based on theindication of the metaphor transmitted.

The data processor 54 may be operable to reconfigure the metaphorgenerator to restrict the plurality of metaphors to a subset ofmetaphors that include at least one metaphor. The subset of metaphorsmay be provided at the user interface module 52 for the observer 12 toinput the human feedback rating specified by the event record.

Reference is now made to FIG. 4 which illustrates a block diagram of aserver 18 for capturing event feedback in accordance with embodimentsdescribed herein.

The server may include an event registration module 58, acomputer-readable storage module 60, a communication module 62, and adata processing module 64.

The event registration module 58 may be configured to register an event,as described herein, such as in relation to FIG. 5 for example.

The computer-readable storage module 60 may store different eventrecords for different events. The different event records may include acorresponding event record for each event.

The communication module 62 may be configured, for each event record inthe different event records, to receive a plurality of feedback indiciaarrays for that event record. The communication module 62 may beelectronically linked to the computer-readable storage module 60 forcommunication therewith. Each feedback indicia array may store aplurality of different times and a plurality of feedback indicia, suchthat for each time in the plurality of different times, the plurality offeedback indicia includes an associated feedback entry indicium. In someembodiments, the communication module 62 may be configured to receive aplurality of feedback indicia arrays for a plurality of event recordssimultaneously.

The data processing module 64 may be linked to the computer-readablestorage module 60 for communication therewith. The data processingmodule 64 may be configured to determine, for each event record in theplurality of different event records, an aggregate feedback result arrayfrom the plurality of feedback indicia arrays received for that eventrecord. The aggregate feedback result array may define an associatedaggregate feedback timeline, and for a plurality of different times inthat timeline, a plurality of aggregate feedback results. For each timein the plurality of different times in that timeline, the plurality ofaggregate feedback results may include an associated aggregate feedbackentry result. The aggregate feedback results may be determined byaggregating the plurality of feedback indicia for each feedback indiciaarray in the plurality of feedback indicia arrays based on the pluralityof different times for each feedback indicia array in the plurality offeedback indicia arrays. In some embodiments, the data processing module64 may be configured to determine an aggregate feedback result array fora plurality of event records simultaneously.

In some embodiments, for at least one event record in the plurality ofevent records, the communication module 62 may be configured to receivethe plurality of feedback indicia arrays from a plurality of mobiledevices.

The communication module 62 may be configured to receive the pluralityof feedback indicia arrays from the plurality of mobile devices in realtime by, for each feedback array transmitted from each mobile device,receiving the plurality of feedback indicia as an ordered sequence overtime at the communication module based on the timeline for that feedbackindicia array. Some feedback indicia may be receivable by thecommunication module 62 before other feedback indicia in the pluralityof feedback indicia are transmitted to the communication module 62 bythe device 14.

The communication module 62 may be configured to receive a request toregister a new event by adding a new event record to the plurality ofevent records. The data processing module 64 may be configured to addthe new event record to the plurality of event records based oninformation in the request.

The data processing module 64 may be configured to further define thenew event record by receiving from a requester at the communicationmodule and storing in the computer-readable storage module 60 at leastone feedback source acceptance attribute. The feedback source acceptanceattribute may identify a possible characteristic of a mobile device inthe plurality of mobile devices, or a user of the mobile device.

The communication module 62 may be configured to receive an unfilteredplurality of feedback indicia arrays. The data processing module 64 maybe operable to filter out from the unfiltered plurality of feedbackindicia arrays any feedback indicia arrays in the unfiltered pluralityof feedback indicia arrays not satisfying the at least one feedbacksource acceptance attribute from the unfiltered plurality of feedbackindicia arrays in determining the aggregate feedback result array. Theaggregate feedback result array may be determined without consideringany feedback indicia arrays filtered out from the unfiltered pluralityof feedback indicia arrays.

The communication module 62 may be configured to display characteristicssuch as location, age, gender, nationality, mobile device type andmobile device model to the requester. The communication module 62 mayinclude an input operable by the requester to select the at least onefeedback source acceptance attribute from the plurality ofcharacteristics comprising location, age, gender, nationality, mobiledevice type and mobile device model. The feedback source acceptanceattribute may comprise a plurality of feedback indicia array sources.Each feedback indicia array source may identify a user or a device 14.Each feedback indicia array received at the communication module 62 maybe received from an associated feedback indicia array source in theplurality of feedback indicia array sources. The data processing module64 may determine the aggregated feedback result array withoutconsidering feedback from a source other than the plurality of feedbackindicia array sources. On receiving the request to register the newevent from the requester, the data processing module 64 may beconfigured to further define the new event record by receiving from arequester at the communication module 62 and storing in thecomputer-readable storage module 60 at least one authorized feedbackindicium kind. The at least one authorized feedback indicia indiciumkind may include a rating provided by a user, biometric feedbackindicating a biometric characteristic of the user, and environmentalfeedback indicating an environmental condition around the user.

The communication module may be configured to receive an unfilteredplurality of feedback indicia arrays. The data processing module may beoperable to filter out any feedback indicia arrays in the unfilteredplurality of feedback indicia arrays defining feedback kinds other thanthe at least one authorized feedback indicium kind. The aggregatefeedback result array may be determined without considering any feedbackindicia arrays filtered out from the unfiltered plurality of feedbackindicia arrays.

The at least one authorized feedback indicium kind may include the humanfeedback and at least one of environmental feedback and biometricfeedback. The feedback indicia arrays received for the new event record,is configured to store, for each time in the plurality of differenttimes, an associated human feedback rating and at least one of anenvironmental feedback entry and a biometric feedback entry.

In an example, the human feedback may include electro-mechanicalfeedback.

The data processing module 64 may be configured to analyze each feedbackindicia array in the plurality of feedback indicia arrays received atthe communication module 62 to determine a plurality of tentativemilepost times in the plurality of different times for that feedbackindicia array. The feedback indicium corresponding to each tentativemilepost time in the plurality of milepost times may differ from thefeedback indicium corresponding to a time immediately before thismilepost time by more than a threshold amount. The data processingmodule 64 may also compare the plurality of tentative milepost times foreach feedback indicia array in the plurality of feedback indicia arrayswith the plurality of tentative milepost times for other feedbackindicia arrays in the plurality of feedback indicia arrays to determinea plurality of confirmed milepost times in the associated aggregatefeedback timeline. The aggregate feedback result corresponding to eachconfirmed milepost time in the plurality of confirmed milepost timesdiffers from the aggregate feedback result corresponding to a time inthe plurality of different times for the associated aggregate feedbacktimeline immediately before this confirmed milepost time by more than anaggregate threshold amount.

In some embodiments, for each event record in the plurality of differentevent records, the data processing module 64 may be configured todetermine the aggregate feedback result array from the plurality offeedback indicia arrays received for that event record by determiningthe associated aggregate feedback timeline by converting the pluralityof different'times for each feedback indicia array in the plurality offeedback indicia arrays to a common timescale along the associatedaggregate feedback timeline based on the plurality of tentative mileposttimes determined for each feedback indicia array.

The data processing module 64 may be further operable to change thethreshold amount when determining the aggregate feedback timeline.

The communication module 62 may be configured to receive at least oneinput tag from a user for each feedback indicia array in at least twofeedback indicia arrays in the plurality of feedback indicia arrays. Thedata processing module 64 is operable to determine, for each feedbackindicia array in the at least two feedback indicia arrays, a userselected timeline segment, a start time tag and an end time tag based onthe at least one input tag. The user selected timeline segmentcorresponds to a duration of time of a segment within an event timeline.The start time tag corresponds to a start time of the user selectedtimeline segment and the end time tag corresponds to an end time of theuser selected timeline segment. The at least two feedback indicia arraysmay be selected such that the user selected timeline segment of onefeedback indicia array in the at least two feedback indicia arraysdiffers in length from a different feedback indicia array in the atleast two feedback indicia arrays. The data processing module 64 mayfurther determine the aggregate feedback result array by defining anassociated aggregate feedback timeline by comparing at least two userselected timeline segments for the at least two feedback indicia arraysto determine at least one time scale adjustment and adjusting therelative timing of at least some of the plurality of the feedbackindicia arrays based on the at least one time scale adjustment beforeaggregating the plurality of feedback indicia arrays.

The data processing module 64 may be configured to operate in real timeto determine an updateable version of the aggregate feedback resultarray based, in part, on a part of a feedback indicia array in theplurality of feedback indicia arrays received from one mobile devicebefore a remainder of that feedback indicia array is received at thecommunication module. The communication module 62 may be operable toprogressively transmit updated versions of the updateable version of theaggregate feedback result array to the one mobile device before all ofthat feedback indicia array from the one mobile device is received atthe communication module.

The computer-readable storage module 60 may be operable to store two ormore event records for the same event. In some embodiments, the serversystem 18 may register and the computer-readable storage module 60 maybe operable to store different event records for the same event 30wherein each event record corresponds to a different aspect of the event30. For example different event records may be provided for differentgroups of users, or for the same event viewed from differentperspectives.

For the at least one event record in the plurality of event records, thecomputer-readable storage module 60 may be configured to store aplurality of feedback indicia array sources. Each feedback indicia arraysource in the plurality of feedback indicia array sources may identifyat least one of a mobile device in the plurality of mobile devices, anda user of the mobile device and a location of the mobile device.

The communication module 62 may be configured to receive identificationinformation from a device 14. The identification information may includea mobile device name, mobile device model, mobile device operatingsystem, mobile device identifier, mobile device GPS location, useridentifier and user password, the identification information alsoidentifying at least one of a mobile device, a user of the mobile deviceand a location of the mobile device.

The data processing module 64 may be configured to compare informationidentified by each of the feedback indicia array source in the pluralityof feedback indicia array sources stored for each event records in theplurality of event records stored at the computer-readable storagemodule 60 to corresponding information identified in the identificationinformation received from the mobile device.

The data processing module 64 may be further configured to generate alist of event records in the plurality of event records stored at thecomputer-readable storage module 60 based on the comparison that foreach event record in the list of event records, at least one feedbackindicia array source in the plurality of feedback indicia array sourcesmay identify all that information also identified in the identificationinformation received from the mobile device.

Reference is now made to FIG. 5, which illustrates a flowchart diagramof a method 100 for capturing event feedback implemented by serversystem 18 in accordance with at least one embodiment. Some or all of themethod steps may be implemented in near real time.

At step 102, server system 18 registers an event record and assigns anevent identifier to the registered event record. The event record isassociated with an event 30 and an event timeline, where the eventtimeline defines a period of time for the event. For example, the eventtimeline may have a start and end time and may be divided into timesteps or annotated with mileposts. The event record may be used to storedata regarding the event including event details, feedback indicia forthe event 30, and feedback results for the event 30. An example of anevent timeline that is divided into time steps may be for a concert thatbegins at 8:00 pm, ends at 11:00 pm, and in which the time steps mightbe individual songs, or some other form of performer/audienceinteraction. The event timeline may be different than the actual timethe event is viewed by observers 12, such as if the event is not a liveevent for example, In other examples, the event timeline may correspondto the time the event is viewed by observers 12, such as for example ifthe event is a live event. However, even if the event is a live eventthe event timeline may not correspond to the time the event is viewed byobservers 12. System 10 is operable to compare two performances or viewsof the same event 30 that are viewed by observers 12 at different times.For example, a song in a concert or a live musical may not be performedat the same second at different performances at different times, such ason different days. The use of individual songs as time steps on theevent timeline or mileposts enables the system 10 to compare differentparts of the two performances.

Server system 18 may receive configuration parameters for receiving thefeedback indicia and generating and providing feedback results. Forexample, the host 4 may create a reservation for a specific event 30 andin response server system 18 registers an event record if an eventrecord for the event 30 does not already exist. To create reservationfor an event, the host 4 can 1) specify the computational resourcesneeded for evaluating an event, and 2) select options for obtaining andrecording feedback indicia from the observers 12 and clients 16; 3)select options for aggregating, analyzing, and packaging the feedbackfrom the observers 12; and 4) select options for distribution tobeneficiaries 22, among other configurations.

The host 4 can 1) register with the server system 18; 2) authenticate tothe server system 18; 3) specify the parameters for the event 30observation (e.g., how the server system 18 will aggregate the feedbackindicia received from the observers 12 during the event 30; 4) specifythe parameters for the analysis of the feedback indicia; and 5) specifythe parameters for the feedback results. Optionally, the host 4 maycreate a unique observer 12 experience by customizing the appearance(using logos, graphic displays/designs and other industry nuances) andthe metaphor used on the client 16 to provide feedback to the serversystem 18.

The initial registration may be changed. Registration information thatis not required before the event 30 begins may be supplied at any time,such as for example distribution of feedback results.

The server system 18 is operable to verify or validate the informationsupplied by the host 4. This may include event 30 identification,metaphors used by the client 16, maximum resource consumption, analysisstrategies, packaging, and distribution of the feedback results. Theserver system 18 then stores information that will be used at the timeof the event. If in a cloud environment, the server system 18 may alsoneed to reserve computational resource for the time of the event 30. Notall information is required before the event 30. Some aspects such asanalysis, packaging, and distribution may be received from the host 4after the event. Once the server system 18 has sufficient information tomake a reservation, the host 4 is provided a reservation identifier forthe event 30. This information may be kept in the host's 4 account onthe server system 18.

Optionally, to attract observers 12, the host 4 may publicize theregistration identifier or invite potential observer 12 to rate an event30 via the client 16. Alternatively, the host 4 may request the serversystem 18 to publicize the event 30 and/or the Registration Identifieror invite potential observers 12 to rate an event 30 via the client 16.

Referring now to table 1, interactions between various components ofsystem 10, namely observers 12, clients 16 and server system 18 can bedepicted in accordance with one embodiment as below:

TABLE 1 Interactions between observers 12, clients 16 and server system18 Server Server Server Server Observer System 18 System 18 System 18System 18 12 (user) Client 16 front-end Queue back-end Database 1 Userlaunches app 2 User optionally enters userid/ password 3 Sendsidentifying information to server 4 Returns user identification 5 Usertypes search term 6 Sends fragments for type-ahead to server 7 Returnssearch terms matching typing fragments 8 User selects search term 9Sends search information to server 10 Returns search results 11 Userselects event to score 12 Sends userid and event id to server. 13Returns voting booth link and voting booth key 14 Optionally sendsrequest for user interface metaphor for event id to server 15 Returnsclient user interface metaphor information 16 Retrieves the userinterace elements 17 User gives feedback 18 Sends user feedback toserver 19 Server puts feedback in queue 20 Feedback remains in queueuntil retrieved 21 Backend retrieves user feedback from queue and putsdata into database 22 User feedback stored in database. 23 User requestfeedback graph 24 Device event identification in request for userfeedback graph data 25 Server queries database and returns aggregated,analyzed feedback data to client.

Prior to the event 30, the observer 12 may need to install the client 16on a device 14. However, the client 16 may, for example, be embeddedwithin another application or webpage. The device 14 then launches theclient 16. For example, the observer using a mobile device 14 may selectthe icon representing the application corresponding to client 16 ofsystem 10. As discussed above, the observer 12 may have to provide theclient 16 with a unique observer identifier to be sent to server system18. In some other embodiments, the unique identifier corresponding tothe device 14 on which the client 16 is launched is transmitted to theserver system 18. In some other embodiments, a GPS location of thedevice 14 on which client 16 is launched is transmitted to the serversystem 18. In various embodiments, a combination of some or all of theabove is transmitted to the server system 18. This enables the serversystem 18 to differentiate among various observers 12. In someembodiments, the name and version number of the client 16 may betransmitted to the server system 18 so an updated version of the client16 can be provided to the observer 12 and device 14. Other identifiersmay also be used in other example embodiments.

In various embodiments, the server system 18 includes a table for eachidentifying attribute, such as for example, device identifier, observeridentifier, GPS location etc. The server system 18 may search a databasefor the received identifying attribute to determine if the observer 12,the device 14 or both have been identified previously. If so, a uniqueobserver identifier corresponding to a table entry in the database maybe returned to the observer 12. If not, then the server system 18 maycreate a new entry corresponding to the received identifying attributesin a table of the database, generate a new unique observer identifierand return the observer identifier to the observer 12 for subsequentuses.

To select an event 30, the observer 12 requests from the client 16 alist of registered events. In some embodiments, the observer 12 requestis triggered when the observer 12 types in a search term or a part ofthe search term on the device 14. In various embodiments, the serversystem 18 is operable to find search terms, such as titles of actualevents 30, matching the keystrokes entered by the observer 12 (alsoknown as a type-ahead feature). For instance, as soon as the observer 12enters the letter ‘p’, the server system 18 may be able to send theclient 16 a list of registered events starting with letter ‘p’ or a listof search terms starting with the letter ‘p’, such as events titled‘political debate’, ‘Phantom of the Opera’ (a musical), ‘Parenthood’ (aTV show), ‘Pro Wrestling’ (a sport) etc. In some other embodiments, theevent list provided to the observer 12 includes events that contain theentered keystrokes, not necessarily starting with the enteredkeystrokes. This allows an event 30 titled ‘The Phantom of the Opera’ toappear in the event list as well, for example. In some otherembodiments, the server system 18 is operable to provide candidatesearch terms, and not titles of actual events 30, based on thekeystrokes entered by the observer 12. This may be convenient for theuser if for example if the list of the titles associated with the inputis long as compared to a list of candidate search terms

In some embodiments, only those events 30 starting with or containingthe entered keystrokes that the observer 12 is permitted to observe andevaluate are displayed. Such a list may include all publically availableevents but only those private events that the observer is either invitedto or permitted to observer. In some other embodiments, all registeredevents 30 starting with or containing the entered keystrokes aredisplayed. In such a case, the private or invitation-only events aredisplayed with an indicator, such as a lock or text, indicating that theobserver 12 is not permitted to observe that event 30. As the observer12 enters more keystrokes, the automatic display of event 30 list getsfiltered and updated. The observer 12 may then either complete typingthe search term or chose one of the displayed events.

In some embodiments, to select an event 30 to observe, the observer 12requests from the client 16 a list of reservation identifiers or eventidentifiers that the observer 12 is authorized to see. The observer 12then selects the appropriate reservation identifier or event identifier.In various embodiments, the GPS information or the observer's 12observer record may filter the event list, reservation identifiers orevent identifiers displayed to the observer 12. For example, at leastsome of the events 30 in the event list may be associated with ageographic location. Server system 18 may receive a geographic locationof the device and generate the list of the events based on thegeographic location of the device 14. Server system 18 may generate alist of events proximate to the geographic location of the device 14. Asfurther examples, the list of events may be generated based on ageographic location of the event, a geographic location of the device14, the event timeline, a current time, a list of observers invited toprovide feedback for the event, whether the event 30 is publicallyavailable for feedback, prior event selection choices by that observer12 and so on.

The event list may be displayed in the order of event 30 start-times.The event list may also be organized based on the duration of the events30. The order of the listing of the events 30 may also be customizedbased on the options selected by the host device 6 or observer 12. Insome embodiments, the listing of the events 30 may be customizable andordered based on the GPS coordinates of the observer 12 or device 14.For example, if a fast food chain restaurant wants to gather feedbackfor their restaurant, the observer 12 may be able to receive a list ofevents (such as restaurants) in the order of geographical proximity tothem, i.e. the closest restaurant for that fast food chain to appear onthe top of the list. The device 14 may receive the location via GPS, QRcode, manual input, and so on. The observer 12 may also customize theclient 16 to display only a few events 30 on the user-interface at agiven time. For instance, if the event list contains 100 events, theclient 16 can be customized to only display 10 results at a time. Theobserver 12 may request the next set of event results to be displayed byeither pressing a button, scrolling or other means. The observer 12 orhost 4 (or host device 6) may customize the level of detail associatedwith an event 30 that is available to the observer 12. For instance, asmall description of the events 30 may be made available in the eventlist. In various embodiments, a unique identifier may appear with eachevent 30 in the event list. This identifier may be the event identifier,reservation identifier or a new and unique identifier.

In some embodiments, the appearance of the client 16 may be customizedbased on the options selected by the host device 6. In some otherembodiments, the server system 18 may specify one or more metaphors forreceiving the feedback indicia, such as a slider, a question, anumerical scale, a point within an image, a hand gesture, a simulatedhand gesture, an icon, a button, a graph, text, a chart, a grid, amulti-touch gesture, moving sliding finger, tapping rhythmically,clapping hands, clapping on the internet by, for example, activation orrepeated use of a button, or a number of symbols, for example. Theserver system 18 may change the metaphors for receiving the feedback atfixed points in time within the time period for the event. The serversystem 18 may change the metaphors in response to received feedbackindicia.

In various embodiments, the observer 12 may send a request for a userinterface metaphor to the server system 18. For instance, the observer12 may want to use a slider or a line as a metaphor. The observer 12 maydesire to move a pointer on a line, where extreme right may indicate anextreme positive feedback, and extreme left may indicate an extremenegative feedback, over answering questions (another example of ametaphor). In other embodiments, questions may be used to gatherdifferent information than positions on a slider. The server system 18may be operable to provide the observer 12 with some information withrespect to the requested metaphor, such as which direction or actionindicates positive feedback etc.

In various embodiments, once an event 30 is selected by the observer 12,the server system 18 first determines if the observer 12 is authorizedto observe the event 30. This may be done by prompting the observer 12to either provide the unique observer identifier (discussed above), theunique identifier corresponding to each event 30 in the event list orboth to the client 16 to be sent to the server system 18. If theobserver 12 is found to be authorized, the server system 12 generates akey for the observer 12. The key may be generated using cryptographicmethods, such as for example, RFC 2014 Hash based Message AuthenticationCode etc.

Before the observer 12 experiences the event, the server system 12provides the observer 12 with the address of the evaluation locationfrom where the observer 12 may evaluate the event 30 and provide inputdata. In various embodiments, the observer 12 is prompted to provide thekey generated by the server system 12 upon authentication of theobserver 12 for verification. Once the entered key is verified to be thesame as the generated key, the observer 12 is permitted to enter theevaluation location to provide feedback. In various embodiments, theevaluation location provided to the observer 12 is based on the observer12 or device 14 GPS location. This may be helpful in regulating onlinetraffic and minimizing latency. In system 10, any individual can hostand define what observers are permitted to provide feedback, based ontype of observer, location of observer, observer identifier, and so on,for example. This allows users to create their own network of friendsand receive and share their feedback amongst themselves rather than theworld at large.

In some embodiments, an observer 12 and a host 4 may be the sameentities, and the client 16 may functionally also include the hostclient 8 or vice versa. Once an observer launches a client 16 either ona device 14, or through a webpage, or by any other means, the observer12 may be able to select an event from a plurality of registered eventsat the server system 18 and invite a selected group of individuals toprovide feedback with respect to the selected event. For instance, anobserver 12 may be interested in providing feedback for an event, suchas for example ‘American Idol,’ but may also want to see how his or herfriends rate the same event. The selected group of friends may beselected from one's social media accounts, such as Facebook, Twitteretc. The selected group of friends may also be invited by providing alink in electronic mails where the link may be followed to providefeedback such that the feedback can be linked to the event record of theevent selected by the observer (in this example, American Idol).Accordingly, system 10 is operable to link feedback from observers 12that are “friends” in order to provide specific results to observersregarding their friends.

The observer 12 experiences the event. An event 30 is an observablephenomenon such as: a concert, a sporting event, an audio program, atelevision program, a movie, a political event, an artistic performance,a party, a meeting, a class, a seminar, a conference, a recorded event,a live event, or an artistic performance, for example.

At step 104, server system 18 receives feedback indicia for the event 30from observers 12 via a plurality of devices 14 and clients 16, whereeach feedback indicia is associated with an event timestamp. Each eventtimestamp indicates a point in time within the event timeline. Thisenables the feedback data to be correlated to the event timeline inorder to process the data and generate feedback results. In someembodiments, the feedback indicia may consist of human feedbackidentifying the reaction of the observer 12. The human feedback indiciamay be received by using metaphors, such as sliders or answeringquestions etc. The human feedback indicia may also be received byelectro-mechanical means. For example, a device 14 may be a flip-phoneor a slide-phone and the reaction of the observer 12 may be recordedbased on the number of times the observer 12 flips open or slides thedevice. Likewise, a device 14 may consist of an accelerometer, which maydetect the shaking of the device as an expression of how excited anobserver 12 may be. In some embodiments, the client 16 may be operableto convert the electro-mechanical indicia or other human feedbackindicia received using metaphors to a numerical scale.

In some embodiments, the client 16 may be embedded in a webpage wherethe webpage corresponds to an event record, such that feedback withrespect to an event may be provided on that webpage, and the webpage mayautomatically link the received feedback to the event record of theevent being rated. In some other embodiments, the feedback indiciareceived by a client 16 to be transmitted to the server system 18 whichmay be configured to link to an event record by transmitting an eventidentifier identifying an event record to the server system 18. In someembodiments, the event identifier may be transmitted along with eachfeedback indicia transmitted to the server system 18.

The feedback indicia received at the client 16 may be transmitted in theform of an array. A two-dimensional array may be usable to transmitfeedback indicia to the server system 18 where one of the columns of thetwo-dimensional array may consist of timestamps, and the second columnmay consist of a feedback indicium corresponding to each time in thetimestamps. In some embodiments, each feedback indicium and thecorresponding time is transmitted one at a time. In some otherembodiments, a batch of feedback indicia and the corresponding times aretransmitted at once. In yet some other embodiments, a buffer may be usedat the client 16 to store the feedback indicia along with thecorresponding times as they are made available and transmit the feedbackindicia and corresponding times as soon as the buffer is either full orhas reached a threshold value.

In various embodiments, the feedback indicia and the corresponding timesmay be transmitted before other feedback indicia and the correspondingtimes are made available at the client 16. In other embodiments, thetransmission of the feedback indicia and the corresponding times beginsonly after all the feedback indicia for an event is made available atthe client 16.

The observer 12 feedback and other environmental or biometric factorsmay also be transmitted to the server system 18 throughout the event 30.In some embodiments, the device 14 may either be operable to or becoupled to a sensor device that is operable to measure biometricfeedback, environmental feedback or both. Examples of sensor device mayinclude a heart rate sensor, a pulse rate sensor, a temperature sensor,a sound level sensor, a light level sensor, a GPS location sensor, animage sensor and an olfactory sensor etc.

In some embodiments, the human feedback, biometric feedback and theenvironmental feedback may be transmitted by the client 16 to the serversystem 18 as a four-dimensional array consisting of four differentcolumns: timestamps, human feedback corresponding to various times inthe timestamps, biometric feedback corresponding to various times in thetimestamps and environmental feedback corresponding to various times inthe timestamps. In some embodiments, there may be a corresponding humanfeedback, biometric feedback and environmental feedback for each time inthe timestamps column.

In some other embodiment, the human feedback, environmental feedback andbiometric feedback may not be grouped together into one array. Instead,three different arrays may be transmitted where each array consists oftwo columns with one column being time and the other column being one ofthe human feedback, biometric feedback or environmental feedback.

In some other embodiments, only human feedback and one of the biometricfeedback or environmental feedback may be transmitted to the serversystem 18. In some embodiments, the transmission to the server system 18may be as a three-dimensional array consisting of time as one column,and human feedback and one of environmental feedback or biometricfeedback as the other two columns, such that the each time has acorresponding human feedback and one of environmental or biometricfeedback. In some other embodiments, the transmission to the serversystem 18 as a three-dimensional array may consist of time as onecolumn, and human feedback and one of environmental or biometricfeedback as the other two columns such that each time in the time columnmay not necessarily have both corresponding entries (that is, may notnecessarily have both a corresponding human feedback and one ofcorresponding environmental or biometric feedback). In some otherembodiments, the transmission to the server system 18 may be as twoseparate arrays, where one array consists of time and correspondinghuman feedback; and the other array consists of time and one ofcorresponding environmental or biometric feedback.

In some embodiments, the server system 18 may use the received feedbackto provide an indication of event 30 enjoyment or an indication ofengagement. Engagement may not be the same thing as rating enjoyment.Rating measures how much observers 12 viewing the event enjoy it. On theother hand, engagement indicates whether observers 12 are presentlyproviding feedback indicia. If they are not providing feedback indicia,or if the feedback indicia they are providing does not change over time,this can be taken to imply that they are disengaged, which presumably issomething that event producers do not like. The feedback results mayinclude an evaluation of engagement. The feedback indicia may be indiscrete or continuous form. An example of continuous feedback indiciais moving a slider to different positions throughout the event wheredifferent positions correspond to different rating measurements. Anotherdiscrete form example may be that an observer 12 could select one offive or six different categories of feedback indicia.

For example, an observer 12 may operate a metaphor such as a slider torecord their level of enjoyment of the event. The observer 12 could alsomove the slider over time to reflect changes in their enjoyment level.At some points during the event 30 some of the observers 12 may becomedisengaged, and will no longer provide feedback such that either no newfeedback indicia is received or the level of enjoyment will stayconstant over time. In such cases, the server system 18 may determinethat at least some of these observers have become disengaged from theevent 30. Alternatively, at some point during the event, observers 12may become re-engaged and start to operate their slider to indicatechanges in their level of enjoyment. This too could be recorded byserver system 18.

In some embodiments, the server system 18 may be operable to determinethe aggregate feedback results based on the metaphor selected by theobserver 12.

Server system 18 may also receive one or more feedback timestamps for atthe least some of the received feedback indicia for the event. Thefeedback timestamp indicates a time that the respective feedback indiciawere received. If the event 30 is a live event 30 then the feedbacktimestamp may be the same as or proximate to the event timestamp.

In some embodiments, the server system 18 may provide feedback resultsback to the client 16 as soon as they are available so that the observer12 can assess and provide feedback based on the feedback results, and soon. In such embodiments, client 16 can simultaneously send observer 12feedback indicia, observer 12 assessment of feedback results, and time(such as for example, feedback timestamps) to the server system 18 foranalysis.

Some of received feedback indicia for the event 30 may includeenvironmental indicia such as date, time, longitude, latitude, altitude,acceleration, sound levels, light levels, colors, images, videos,temperature, smell, images, videos, air pressure, humidity, and so on,for example. Some of received feedback indicia for the event 30 mayinclude biometric indicia such as heart rate, fingerprint images, and soon. At least some feedback values for the event 30 may be computed basedon the received environmental indicia and biometric indicia for theevent.

At step 106, server system 18 stores and validates the received feedbackindicia for the event 30 in association with the event record. Theserver system 18 may also reformat the feedback for efficient recall.Server system 18 may validate the received feedback by checking itsformat, to ensure that the same observer 12 is not submitting feedbackindicia multiple times using different devices 14, and so on, forexample. Other validations may also be implemented.

At step 108, server system 18 generates feedback results for the event.

In various embodiments, the server system 18 comprises a front-endserver, a queue for each event 30 and a back-end server. The front-endserver may be operable to receive a request from an observer 12 toprovide feedback regarding an event 30 and to return confirmation to theobserver 12 in response to the request. Confirmation may be expressed byreturning some or all of the following: event list, voter identifier,identifier associated with each event in an event list, evaluationlocation address, evaluation location key, requested metaphor, metaphorassociated information etc. The front-end server may also be operable toput the observer 12 request into a queue for deferred processing. Insuch a case, a confirmation of receipt of observer 12 request may beprovided to the client 16.

In some embodiments, the observer 12 is not notified of a request thatdid not pass authentication. This may be helpful to prevent hackers orunauthenticated observers from being notified that their exploit was notsuccessful and enticed to try again.

In various embodiments, a front-end server is also operable to receivefeedback indicia along with other information from clients 16 and addthem in a queue. The front-end server may be operable to notify theclient 16 that the transmission of feedback indicia was receivedcorrectly.

The front-end server may also be operable to receive a request toreceive feedback regarding an event 30 from one or more of observers 12,clients 16, hosts 4, host clients 8, beneficiaries 22 (includinginterested parties 24 and proxies 26), event transformers 28, milepostcreators 29 and other third parties and to return aggregated, analyzedfeedback data to the requesting party.

The server system 18 may contain a queue unique to each event 30 thatmay be required to differentiate processing of information based onpriority, such as to differentiate high priority back-end processingfrom low priority back-end processing. A queue may be required to storeobserver 12 request to provide feedback regarding an event 30, observer12 or other party requests to receive feedback regarding an event 30,and feedback indicia and other information received from the observer 12regarding an event. In various embodiments, once a request to providefeedback is put into a queue, a queue item identifier may be returnedfrom the queue. This may help server system 18 to detect and preventduplicate processing. The storage time of a queue may be customized tolast any duration of time, with or without a possibility of extension.For instance, in some cases, the storage may be up to 4 days with apossibility of extension up to 12 days.

The back-end server of the server system 18 may be operable to retrieveobserver 12 request to provide feedback regarding an event 30 from thequeue and process it. In various embodiments, the back-end is taskedwith authentication of the observer 12. If the observer 12 cannot beauthenticated, the back-end server may discard the observer 12 requestto observe an event 30. This may be done by putting the request into adiscard queue, which may be later analyzed for fraud detection.

The back-end server of the server system 18 may also be operable toretrieve feedback indicia (including observer input, environmentalindicia, biometric indicia etc.) and other information (includingtimestamps, observer assessment of feedback results etc.) from the queueto be processed.

In various embodiments, there are separate databases or tables for eachevent 30. This may avoid interference of feedback indicia from an oldevent 30 with a new event 30. The feedback indicia and other informationretrieved by the back-end server for processing may be stored in thedatabase for future reference. The feedback results generated by theback-end server of the server system 18 may also be stored in thecorresponding databases or tables. The server system 18 may archive thedatabase or table once the data for the event 30 is no longer needed.

The back-end server of the server system 18 may also be operable toretrieve requests to receive feedback regarding an event 30 from thequeue and send a query to the databases or tables where feedback resultsare stored. The feedback results may be formatted by the back-endserver, and then returned to the requesting party by the front-endserver. The back-end server may also store the formatted response in thecorresponding table or database for future use.

As discussed previously, the server system 18 may register devices andassign a device identifier to each registered device 14. At least someof the received feedback indicia are associated with one or more deviceidentifiers to indicate which device 14 the feedback indicia werereceived from. Server system 18 may register an event observer 12 andassign an event observer identifier to each registered event observer.The received feedback indicia may then be associated with the eventobserver identifier to indicate which observer 12 the feedback indiciawere received from.

Server system 18 may receive feedback indicia for the event 30 byproviding a list of events 30 to a device 14. Each event 30 identifiedin the list of events is associated with a unique identifier. Serversystem 18 may receive a selected event 30 identified in the list ofevents 30 from the device 14 and associate the received feedback indiciawith the unique identifier associated with each event 30 in the list ofevents. This unique identifier may be the event identifier, reservationidentifier or a new and unique identifier.

The feedback results may include a method used to receive the feedbackindicia, a number of observers that feedback indicia is received from, anumber of devices that feedback indicia is received from, a length oftime that the feedback indicia was received, geographic locations forthe plurality of the devices, geographic locations of observers thatfeedback indicia was received from, a list of types of feedback indiciareceived, a statistical analysis of the received feedback indicia inview of the event timeline, a comparison of feedback indicia receivedfrom a first set of observers to feedback indicia received from a secondset of observers, a list of biases detected during the event, reports, aweb service and raw data in export formats. The server system 18 isoperable to receive feedback indicia as input and perform processingsteps on the received input to produce feedback results. Further serversystem 18 is operable to perform analysis on feedback results togenerate further feedback results.

The feedback results comprise a vector of feedback result values for theevent 30, where each feedback result value is associated with a point intime within the event timeline. Each feedback result value for the event30 is computed by aggregating the received feedback indicia for theevent 30 based on their associated event timestamps. For example, for agiven time defined by a timestamp, server system 18 is operable toaggregate all feedback indicia associated with that timestamp and eventto compute an overall feedback result value for the time on the eventtimeline the feedback result value corresponds to. Server system 18 maygenerate the feedback results by removing statistical noise from thereceived feedback indicia. That is, the vector of feedback result valuesprovides a mapping of feedback results values to points of time in theevent timeline. The points of time may be mileposts for example.

For example, the results may include an engagement measurement, whereinthe engagement measurement indicates the quality and quantity (such asfrequency of interaction with client 16) of the received feedbackindicia at different points in time in the event timeline. As anotherexample, server system 18 determines the number of event observers 12that feedback indicium for the event 30 is received from.

In various embodiments, the generation of feedback results is an ongoingand cumulative process. In cases where the event 30 being observed andanalyzed is pre-recorded, observers 12 providing feedback indicia maynot be providing such feedback at the same time. For example, if anevent 30 is a video on the internet (for instance on YouTube), thefeedback may not be provided by all observers 12 at the same time.Therefore, the server system 18 is operable to update the feedbackresults anytime new feedback indicium from an observer 12 is provided.

At least some feedback indicia for the event 30 may be associated with afirst observer 12 and at least some other feedback indicia for the event30 is associated with a group of other observers 12. The feedbackresults may include a comparison of the at least some feedback indiciafor the event 30 associated with the first observer 12 to the at leastsome other feedback indicia for the event 30 associated with the one ormore other observers 12.

In some embodiments, an observer 12 may be able to choose one or moreother observers 12 to compare feedback indicia with. In other words, anobserver 12 may be able to define and select his own set of audience inorder for the server system 18 to generate feedback results that includea comparison of the feedback indicia of the first observer 12 tofeedback indicia of the selected audience. For instance, an observer 12may want to compare his feedback indicia to the feedback indicia ofother observers 12 of same location, age, gender etc.

In some embodiments, the host 4 may register, with the event record, alist of characteristics, such as for example, location, age, gender,nationality, mobile device type and mobile device model. In some otherembodiments, the list of characteristics may include source informationidentifying a user or an observer 12. The server system 18 may beoperable to use such characteristic and source information to eitherdetermine aggregate feedback results or segregate feedback resultsaccordingly. In other words, the server system 18 may filter out thosefeedback indicia that do not satisfy the characteristic or sourcerequirements of the event record while determining an aggregate feedbackresult array.

In some embodiments, the received feedback indicia for the event 30 maybe associated with an observer 12, and the feedback results may bespecific to the observer 12 by aggregating the received feedback indiciafor the event 30 associated with the observer 12.

In some embodiments, an observer 12 may be able to create a uniqueaccount on the server system 18 which may or may not be passwordprotected. Observer 12 with the account may allow the server system 18to display the observer 12 feedback results to one or more otherobservers 12. The observer 12 with the account may determine thequalifications of the one or more other observers. For instance, the oneor more other observers may be limited only to those who are friends ofobserver 12 with the account. One or more other observers 12 may alsoelect to ‘follow’ the observer 12 with the account. By following theobserver 12 with the account, one or more other observers or followersmay be able to receive automatic updates of feedback results of anyfuture events 30 observed and evaluated by observer 12.

As an example, feedback results may compare an observer's 12 ownfeedback indicia with the feedback of others who had previously or atthe same time watched the event. This might work differently inreal-time and with historical events.

In the real-time case, observer 12 may track their own enjoyment of theevent. Thus, in a graph representing feedback results their owntrajectory would be going up and down up to the present moment. At thesame time the device 14 might provide an aggregate trajectory, whichwould not go up to the present moment as some processing would beinvolved, but could comprise earlier times in the event. Thus, theobserver 12 could track their relative enjoyment, or lack of enjoyment,of an event.

In the historical example, where the observer 12 is watching an eventthat other observers 12 have already rated, the feedback results may becompletely up-to-date. The device 14 and client 16 may provide a userinterface or user display, which shows both the observer's 12 feedbackresults, and the aggregate feedback results, or alternatively, justshows the difference between the observer's 12 feedback results and theaggregate feedback results.

In some other embodiments, the system 10 may have celebrity accounts atthe server system 18. A celebrity may be a national or an internationalperson or entity who may have achieved some degree of frame among themasses. In some embodiments, the observers 12 may be able to view and orreceive feedback as provided by the celebrities. In some otherembodiments, the observers 12 may also be able to purchase a view of thecelebrity feedback indicia or results at any time in the future. In yetsome other embodiments, the observers 12 may be able to request anoverlay of the celebrity feedback indicia over the observer's ownfeedback indicia. The observer 12 may also request the overlay offeedback indicia from a selected number of individuals (such as theobserver's Facebook friends), observer's own feedback and feedback fromone or more celebrities, or any other combination of these.

The system 10 may maintain agreements or contracts with celebrities suchthat celebrities receive a certain amount of money or a share of profitsdepending on how many events they provide feedback for. For instance, itmay be a 5% share of the profits if a celebrity provides feedback forone event, but the share may go up to 7% if feedback is provided for twoevents.

The system 10 may maintain a list of subscribers who may be interestedin purchasing feedback provided by celebrities. The system 10 mayprovide for various subscribers to enter into an agreement or contractwhere they pay a certain amount of money to receive feedback from acelebrity. The purchase price may vary depending on the number ofcelebrities a subscriber is interested in viewing feedback results from.The purchase price may further vary if a subscriber wants to view anoverlay of celebrity feedback results over his own feedback results.

In various embodiments, an observer 12 may send a request to the serversystem 18 to receive feedback results at any time. It is not mandatoryfor the observer 12 to receive feedback results as soon as they aregenerated at the server system 18. The observer 12 may be able to accessthe feedback results the next day of the event, or a month therefrom, ortill any time depending on storage capabilities of the server system 18.

At step 110, server system 18 provides a representation of the feedbackresults. As noted herein, a representation may be a chart, graph, table,or other representation of the feedback results in a wide variety offormats depending on the beneficiary 22 or device 14, for example.

In some embodiments, client 16 sends a request to the server system 18to receive feedback results. In some other embodiments, client 16automatically receives feedback results from the server system 18 assoon as they are available. In those embodiments, where the client 16sends a request for feedback, one or more of unique identifiers, such asfor example observer identifier, device identifier, voter identifieretc., may have to be provided to the client 16 to be transmitted to theserver system 18. The front-end of the server system 18 may be operableto search the database and return aggregated and analyzed feedbackresults to the client 16.

The individual observer 12 data (including feedback results specific tothe observer), along with the aggregated data (including feedbackresults) from all observers 12 may be sent to clients 16 from the serversystem 18 as specified by the host device 6. The client 16 receives thedata and provides a representation of the data as specified by the hostdevice 6 to the device(s) 14 for viewing or storing by the observer 12.

The server system 18 may also provide a representation of the feedbackresults to one or more beneficiaries 22. Depending on the defaultparameters or the parameters specified by the host device 6, this mayinclude, but not be limited to, all the feedback indicia captured fromobservers 12, or selected and processed feedback results as it appliesonly to that particular beneficiary or beneficiaries 22.

A type of beneficiary is an event transformer 28. An event transformer28 may receive feedback results from the server system 18, and thenanalyze and transform the feedback results into data that is used toaffect the progression of the event 30.

Another type of beneficiary is a proxy 26. The feedback results receivedby a proxy 26 may be forwarded to other Interested Parties 24.

A milepost creator 29 is operable to create the mileposts before,during, or after the event 30 by making references to activities,feedback indicia, and feedback results that occur at specific points inevent time line. The milepost creator 29 may provide additional dataabout the activities that may, along with the mileposts, be included aspart of the analysis, packaging, and distribution of the information tothe beneficiaries 22.

The event timeline and mileposts associated therewith may be created andpackaged and transferred to the server system 18. The server system 18may correlate the mileposts in the event timeline with observers' 12data and transmit this analysis to beneficiaries 22.

Reference is now made to FIG. 6, which illustrates a flowchart diagramof a method 120 for capturing event feedback implemented by client 16 inaccordance with at least one embodiment.

At step 122, client 16 associates an event 30 with an event identifierand an event timeline that defines a period of time for the event 30.For example, client 16 may receive an electronic invitation for event 30feedback at the device 14, wherein the electronic invitation configuresthe device to receive and provide the feedback indicia for the event 30.As another example, the client 16 may receive a list identifying events30 at the device 14, where each event 30 identified in the list isassociated with an event identifier or reservation identifier. Theclient 16 may receive a selected event 30 identified in the list. Theclient 16 may receive feedback indicia for the selected event 30 at thedevice 14 and associate the received feedback indicia with the eventidentifier associated with the selected event 30.

At least some of the events 30 identified in the list may be associatedwith a geographic location. The client 16 may determine a geographiclocation of the device 14, provide the geographic location of the device14, and receive the list identifying the events 30 based on thegeographic location of the device 14. At least some of the events 30identified in the list of events 30 are associated with a geographiclocation proximate to the geographic location of the device 14.

At step 124, client 16 receives a plurality of feedback indicia for theevent 30 at a device 14. Each feedback indicia is associated with atimestamp and each timestamp indicates a point in time within the eventtimeline. The device 14 may receive input data, such as a keystroke thatcorresponds to a measurement value, and provide the input data to theclient 16 for conversion into input data.

The event timeline defines a collection of mileposts, where eachmilepost is a reference to a point in time within the event timeline.The received feedback indicia may be associated with one or moremileposts, such that the feedback indicia provide a measurement of themilepost of the event 30.

Examples types of feedback indicia include human feedback, environmentalfeedback; biometric feedback; and electro-mechanical feedback. Examplesof human feedback include a value corresponding to a rating metric,activation or repeated use of a button, movement of a slider bar,clapping hands and so on. Examples of biometric feedback include heartrate, DNA, fingerprint data, voice data, iris recognition, and so on.Environment feedback is also referred to herein as environmentalindicia.

The client 16 may also receive environmental indicia captured by device14, such as date, time, longitude, latitude, altitude, sound levels,light levels, colors, images, videos, temperature, smell, acceleration,video, images, humidity, air pressure, and wherein at least somefeedback values for the event 30 are computed based on the receivedenvironmental indicia for the event 30.

At step 126, client 16 validates and provides the received feedbackindicia for the event 30 to server system 18. The client 16 may registerthe device 14 and assigning a device identifier to the registereddevice, and provide the received feedback indicia for the event 30 toserver system 18 in association with the device identifier. Examples ofvalidation include checking the format of the feedback indicia andchecking completeness of the feedback indicia.

At step 128, client 16 receives feedback results for the event 30. Asdescribed herein, the feedback results comprise a vector of feedbackresult values for the event 30, where each feedback result value isassociated with a point in time within the event timeline. Each feedbackresult value for the event 30 is computed by aggregating receivedfeedback indicia for the event 30 based on their associated timestamps.For example, all feedback indicia associated with the same timestamp (orproximate timestamps) may be correlated

At step 130, client 16 provides a representation of the feedbackresults. For example, client 16 may display a representation of thefeedback results on display 32 or output a representation of thefeedback results using peripherals 42 or I/O devices 36. In someembodiments, the client 16 may be operable to create a representation ofthe feedback results. The client 16 may receive feedback results fromthe server system 18 as a table of data, stream or block of data, andmay be operable to create a representation, such as for example, agraph, chart, image, of the feedback results. The client 16 may also beoperable to generate feedback results and then create and provide arepresentation thereof.

There are various applications for the example embodiments describedherein.

For example, the event 30 may be a movie. The literary device of dynamicstory lines could be expanded to movies where the observers 12, throughits feedback, could influence which story line is chosen as the movieprogresses. Some movies have multiple story lines weaved through themovie. If the observer 12 feedback shows that a particular storyline isnot of interest, the (digital) movie would be altered to attenuate thestoryline. This is applicable to TV shows, radio programs, online mediaand any other capable media. TV shows that depend on characterdevelopment for story continuity can glean detailed feedback indicia andfeedback results to change a characters role, i.e. a main character isleaving for another town but observers 12 want him to stay yields as abetter storyline.

The event 30 may also be an award show. Live events 30 like award showscan be custom tailored based on reactions from observers 12 i.e.criticisms of the hosts. The show's producer (an example beneficiary 22)would be able to determine on-the-fly if changes are needed to alter theevent 30 to accommodate current feedback.

Another example event 30 may be reality shows. Reality show producerscould use the feedback provided by observers 12 during a live productionto influence the show. More detailed scoring allows for changes infollowing weeks. For example, on a talent singing show, the observer 12feedback indicia may indicate that group songs are not as popular assingle songs or that Beatles songs are more appreciated than Jazz.

An event 30 may be a political debate. Moment-by-moment feedback indiciafrom observers 12 during political speeches enable politicians todetermine the perception (from most favorable to most unfavorable) ofeach statement, answer or position taken during the speech. Additionallythe questions asked by the moderator could be evaluated by feedbackindicia for his\her effectiveness.

Another example is education and business. A meeting organizer (wherethe meeting could be a class, seminar, conference, trade show, focusgroup or business meeting) can receive feedback indicia from observers12 in the audience in response to questions asked from the presenter.The feedback results may be displayed immediately in the presenter'scharts. Additionally, the effectiveness of presenters can be evaluatedmoment-by-moment for immediate or future use.

Another example event 30 is sporting events and artistic performances.Part of the fun of attending a sporting event 30 or performance is the“roar of the crowd”. This aspect is missing when viewing the event 30remotely. Embodiments can break the feedback data down geography andbring together the “virtual crowd”. This adds enjoyment to the game orperformance and makes the fan reaction interactive among fans (observers12). Boxing is the only sport where the score and results are not knownuntil the end of the bout. Additionally there is often a lack ofunderstanding supporting the judges' scorecards. Embodiments describedherein can be used to announce a fan's score round by round. The samelogic can be associated with the Olympics and other tournaments whereembodiments can be used to judge figure skating and gymnastics.

An event 30 may involve theater. On Broadway, understudies are used tofill in when the main actors are unable to perform. The embodimentsdescribed herein can help producers and directors evaluate theperformance of the understudy by seeing the audience feedback formoments where the understudy performed and compare it to the momentswhere the regular actor performed. The understudy may be morecrowd-pleasing than the regular actor.

The server system 18 operable to receive environmental indicia fromclients 16 and devices 14.

Environment indicia can be captured from a mobile device, includinglongitude, latitude. With these indicia, server system 18 is able todiscern whether the position of the observer 12 matters in the enjoymentof the event 30. It could be as small as the different locations in atheater or stadium or as large as global differences. For a worldwideevent 30, altitude and longitude will allow feedback indicia andfeedback results to be aggregated by country. For a national event 30,it will allow data analysis by state or zip code.

Altitude may be environmental indicia. Similarly to longitude andlatitude, altitude could be used to discern whether the position of theobserver matters in the enjoyment of the event 30. For example, in thecase of a rock concert being played in a stadium, the server system 18could figure out if the feedback from observers in the bleachers wasbetter or worse than those at ground level.

Another example is sound levels. If the event 30 was being watchedsimultaneously in multiple locations (e.g., a football game beingwatched from sport bars around the country), the feedback indicia couldconsist of how loud the crowd reaction were to the event 30.

Environmental indicia may also include acceleration. Instead of slidinga finger on a device 14, users could shake the device 14 and theintensity of the movement would be interpreted by the three-axisgyroscope paired with the accelerometer to convert device 14 movementand convert the data to a 1-10 scale—the harder you shake your device 14the more you like the rock concert you're watching. Note that this isvery specific to device 14 but other mobile devices may also be used.

Environmental indicia may rely on existing technology at device 14.

Another example is colors and light levels. Studies show that certaincolors have psychological effect. Pink calm prison inmates. Restaurantsuse orange because it makes people hungrier. With recurring events 30,producers can try different color combinations to see what gives thedesired emotional response as audience feedback. The camera on thedevice 14 detects the predominant colors and sends this information withthe observer 12 feedback. The analysis of the aggregated feedback datacompared to historical feedback data can tease out the effect of coloron the performance.

A further example is heart or pulse rate. Embodiments described hereincould be used to help people improve their training. For example, acyclist (observer 12) could wear a heart rate monitor and registerhis/her heart rate at various points in time during a circuit repeatedover multiple days. Using the feedback data (e.g., maximum, minimum andaverage heart rate) at various points during the circuit the athletecould improve training. Alternatively, if all participants in a racewere connected, the participants could see how they are doing comparedto others or spectators could see how their favorite athlete is doingcompared to the field. Additionally, server system 18 and client 16could be used at a theme park to score or provide feedback on variousrides like a roller coaster. The increase in pulse rate may be comparedto other riders on that run as well as all riders that day\month etc.and displayed at the entrance. Can be used across the country for a‘best in the nation’ rated ride. Finally, using biomedical feedbacksuccesses and declines for patients undergoing physical therapy sessionscan be monitored more effectively in the home using a smartphone orsimilar device 14. Portability without additional expense to thepatients.

Images and videos may also be used as feedback indicia and feedbackresults. People often attend events 30 not only for the event 30 itself,but also for the “roar of the crowd”. Images and video may provide aclue to the reaction of the crowd as a whole. Are they standing up? Arethey stone still? Are they constantly in motion? Images provide thisinformation. Another use of images would be to have the device 14 simplycapture an image of the observer's 12 facial expressions. Softwareexists to distinguished different facial expressions. These expressionscould then be quantified and returned as feedback indicia.

Temperature may also be environmental indicia. During an outdoors event30 such as golf tournaments, organizers could determine ifincrease/decrease in temperatures has an impact of enjoyment of theevent 30. Air pressure is a further example. An event 30 may have alarge sound component. Air pressure affects sound. By detecting the airpressure at the event 30, the results may be able to determine that theair pressure affected the audience feedback. This information is usefulto audio engineers who can compensate for this. Humidity is anotherexample. Using server system 18, a movie theater may detect that aparticular audience (observers 12) did not enjoy a performance as muchas other audiences. One of the environmental indicia or factors underthe control of the theater owner is the humidity. Should it bedetermined that the humidity level was the only significant variablethen the movie theatre operator can adjust the humidity levels inresponse to feedback indicia.

Reference is now made to FIGS. 9 to 49 illustrating system 10 inaccordance with some embodiments. As illustrated in FIG. 9, even beforelogging in to the system 10, in this example referred to as Votini,which is implemented as an online website, an individual may be able toview a list of top current events (shown using an event identifier and acorresponding event name). This page may also contain a link to asuggestion box usable by any individual to provide suggestions toVotini. The page also contains a graphic and a link to a page called‘What is Votini?’ The page may also contain links to Products, Company,Terms, Privacy, Site map and Help. Additional links may include links toEvents, Reservations, My Account, Documentation, and Suggestion. Theuser may also have the option to Login or Register themselves with thesystem 10. The user may also have the option to use ‘Reservations’ toregister an event 30 with the system 10.

FIG. 10 illustrates accessing the Vote graph tab through Events tab inorder to view one or more graphs representing an aggregate feedbackresult for an event. The Vote graph page may include an eventidentifier, the corresponding event name, and one or more graphs for theduration of the event. Various graph options may be provided to the userto control what is plotted in a graph; the options include: average,maximum, minimum and volume. The graph in this figure shows thesimultaneous plotting of Average and Volume options against the durationof event or any other adjusted time.

As illustrated in FIG. 11, the Mobile Apps page may be accessed to seethe descriptions for each of the mobile applications supported byVotini, and to link to the various mobile apps. FIG. 12 illustratesaccessing iPhone tab using Mobile apps tab where information specific tothe iPhone may be provided. Similar pages may exist for other phones forwhich Mobile apps of the system 10 are available.

FIG. 13 illustrates accessing Documentation tab to access adocumentation page. As a guiding principle, the documentation text onthis page rarely changes. This page guides the user to an appropriatedocumentation. Certain links may be made available to the user on thispage; examples include: Company, What is Votini?, Privacy, Terms of Use,Mobile apps, Help and Site map. These tabs may appear anywhere on thepage, for instance as a list of link or tabs, or on the top right cornerof the Documentation page.

As illustrated in FIG. 14, the Company tab may be used to accessdescription of company and contact information. FIG. 15 illustratesaccessing Help option to open a help page for the system 10. FIG. 16illustrates the availability of FAQ style questions and answers throughthe Help tab. FIG. 17 illustrates the availability of system 10 privacycommitments. As illustrated in FIG. 18, the user can access the ‘Termsof Use.’ FIG. 19 illustrates that the user can click on Votini tab tosee a description (including text and pictures) of what Votini is.

FIG. 20 illustrates that a data tab may be used to see a description ofhow the collected data is managed by the system 10. Information such aswho owns the data, and who can access it etc. are all outlined here.FIG. 21 illustrates a search option for the users. The search does notsearch events, rather includes the ‘Documentation’ web pages. The searchresults list generated in response to a search may include completeinformation for private events but only a list of titles for privateevents and that too only to the authenticated users.

FIG. 22 shows a Votini site map made available to a user. The sitemapmay include the following tabs: Search, Site map, Suggestion,Documentation, Events and My. The Documentation, Events and My tabs maybe clicked for a list of more options. Documentation tab includes otheroptions, such as Company, Privacy, Terms of use, Votini (linking to Datarepository), Help (linking to FAQs), Mobile Apps (providing applicationsfor various phones such as iPhones). The Events tab may link to a listof events and results (may be in the form of a Vote graph) for eachevent. The My tab may link to Account (further linking to a Login tab,Password reset tab and Registration tab), Events (linking to an eventtab), Reports, Reservations (linking to a reservation tab) and Scoring.

FIG. 23 shows the suggestion page where the user is informed thathis/her comments are important to Votini, and is provided with aSuggestion box to fill out his suggestion. In order to tell a human froma machine entering a suggestion, the user may be prompted to type astring of letters (or a string of letters and numbers) in a field, suchas in a CAPTCHA process. A CAPTCHA is a type of challenge-response testused in the field of computing as an attempt to ensure that the responseis generated by a person. The suggestions can then be submitted using a‘Submit’ button. FIG. 24 illustrates that a user may be provided with asuggestion number and ‘password’ confirming that the user has submitteda suggestion.

After a user has logged into the Votini website, FIG. 25 illustrates thevarious fields of personal and financial information that a user of thewebsite may be prompted to provide. The system 10 may make all fieldsoptions. The fields may include: First name, Middle name, Last name,Alternate email, Address (lines 1 and 2), City, State, and Zip Code. Theuser may save this information for future. FIG. 26 shows a notificationprovided to the individual that his account is now activated and fullyfunctions and that additional information can be added by visiting ‘MyAccount’ tab

FIG. 27 illustrates various options provided to an individual using theVotini website. The various options include links to all the things thatthe individual is authorized to do, such as manage accounts, sponsorevents, view event results in progress (sponsored, granted and public)and view reports.

FIG. 28 illustrates how individuals, after logging in to the system 10,may be able to preview upcoming events 30 that they are entitled toscore or provide feedback on. These events 30 may be sponsored by thelogged-in user or by another user that has either made the event 30public or has invited the logged-in user, for example. In other words,the listing of events 30 may include: a private event, an invitationonly event, self-sponsored events, and so on. The observer may be ableto modify the event list by controlling the ‘From’ and ‘To’ dates onthis page, where the ‘From’ and ‘To’ dates are used to shortlist theevents based on their availability. The chosen events may be displayedas a list, where each event contains an event identifier, an event name,an event type, and start and stop times for the event. The event mayalso contain an associated ‘abstract.’

FIGS. 29 to 31 illustrate how an individual can login to the system 10.FIG. 29 illustrates how an individual may login to the Votini website atany time after the account has been created. The individual will need ane-mail address and password to do so. In some instances, when a user mayforget his password, he may use the ‘Forgot Password?’ button toretrieve the same password, or a new password. Once the correct e-mailaddress and password are entered, the individual may login using the‘Login’ button. In the event that an individual has forgotten hispassword, the system 10 may allow the individual to reset his passwordby requesting a password reset, as illustrated in FIG. 30.

FIG. 31 illustrates how an individual can register with the Votiniwebsite. By clicking on the ‘Register’ link, an individual may beprompted to sign up with Votini by providing an e-mail address, andsetting and verifying a new password. The system 10 may prompt theindividual to re-type a randomly generated string of letters, or stringof letters and numbers, using, for example, the CAPTCHA technique, totell a human from a machine; read the ‘Terms of Use’ and ‘PrivacyPolicy;’ and accept the ‘Terms of Use’ and ‘Privacy Policy’ in order tocomplete the registration account creation.

FIG. 32 illustrates a confirmation screen, where the registrationaccount holder is thanked for registering with the system 10, andprovided with a notification that an e-mail has been sent to theregistration account holder's e-mail address. A reminder may be providedto the registration account holder reciting that the e-mail may havefurther instructions and steps to follow in order to complete theregistration account creation.

FIG. 33 illustrates a setup displaying an event identifier (inalpha-numeric or any other form), the event name, the start and endtimes of the event. This setup assists the Votini website account holderto first view the events 30 that the logged-in individual has eithersponsored or has been given rights to in order to select the reportsthat the user wants generated from one or more of the listed events. Thelogged-in individual may check or uncheck events depending on whichevents he wants to have reports generated for. The figure alsoillustrates a report table which provides an event identifier, an eventname and the associated reports for the events. This setup facilitatesthe selection of reports of interest that the user wants to generate andview for one or more events from the list.

As illustrated in FIG. 33, whenever an event is checked, the reportstable is automatically updated with all reports requested at eventregistration time. Further reports may be selected by the account holderfor more money. Once a list of events and corresponding reports areprovided to the account holder, he way download all the reportsrequested previously. The reports may be downloaded as a .zip file andmay be saved locally.

An online registration account in Votini may allow an individual toswitch back and forth between different tabs titled: Free or Fee?,Describe, Participation, Data, Capture, View, Analyze, Cost andCheckout. This may be one web page with multi-tabbed navigation. Onepurpose of the web page design may be to allow the logged-in user tocreate a new event reservation, review an existing reservation, orchange an existing reservation. FIGS. 34-43 are supposed to illustratethe logical progression of setting up the options for event reservationby a user. FIG. 34 illustrates the provision of data analysis options tothe account holder. An account holder registering an event may be ableto select one or more types of analysis (using Analyze tab) that may becarried out on the received feedback data. Some examples of availableanalysis types include summary, rolling average, cumulation and raw datain .csv format. By selecting certain analysis types, the account holderregistering events may become eligible for receiving correspondingreports.

FIG. 35 illustrates the provision of metaphor options made available toan account holder registering an event (using capture tab). Themetaphors, such as a slider, or a 5-star, may be accessed using adrop-down menu and for each metaphor artifact, such as a sliderartifact, the account holder may be able to select its presentation bysetting certain features, such as the background image and a sliderimage. The metaphors chosen on this page may then be the metaphors seenon the mobile devices 14 of the users for providing feedback.

As illustrated in FIG. 36, the account holder may be able to checkoutand confirm his purchase (using Checkout tab). The system 10 may use apayment gateway to receive and authorize payments. FIG. 37 illustratesthe cost that may be incurred by an account holder who registers anevent. The cost may depend on the maximum number of votes set by theaccount holder, the number of days for which the feedback data is madeavailable, the metaphor selected to provide to the observer 12, thetypes and number of available views and the types of feedback dataanalysis selected.

The webpage titled Data may be accessed by an account holder to inputmore details while reserving an event, as illustrated in FIG. 38.Reservation of an event may prompt the account holder to control themaximum number of votes that can be received from the observers 12 andthe frequency of the votes from each observer 12 per minute. The accountholder registering an event may also be able to decide for how long thefeedback data will be made available. Once an account holder enterscertain values for the maximum number of votes to accept and thefrequency of votes from each observer per minute, the system 10 may beable to generate how many voters the system 10 can support at 100%utilization. For instance, if an account holder chooses to receive 30votes per minute for an event with duration of 90 minutes, the system 10calculates the total number of votes per person to be 2700. If theaccount holder sets the maximum number of votes to be 300000, the system10 calculates the capacity of the system 10 to support 111 voters at100% utilization. The number of voters supported by the system 10 isinversely proportional to the utilization of the system 10. If theutilization is less than 100%, more voters can be supported. The accountholder may either reset or save the settings for future use. This tab,along with other tabs such as Capture, View and Analysis, may also beused to provide an educated guess on how much of the system utilizationwill be needed by the logged-in user ahead of actual use.

The describe tab, as illustrated in FIG. 39, may describe the eventselected for registration. The description may include the eventidentifier, the event name, the start and end date and time of theevent, a brief description of the event, and a tweet regarding theevent. FIG. 40 illustrates the provision of allowing a registrationaccount holder to preview the details with HTML.

As illustrated in FIG. 41, the ‘Free or Fee?’ tab may be used to set thekind of service a user desires to provide. The fee service may includethe following features: pay only for votes cost, flexible votingperiods, customizable client metaphors, various forms of feedbackresults, and access to raw data. The free service may include thefollowing: viewing, but not modifying, of Participation, Data, Capture,View, Analyze, Payment or Checkout options. The free service may havelimitations as well, such as maximum free events per user may be 100,maximum length of allowed events under the free service may be 1 hour,maximum votes per event may only be 100,000, data may only be kept for 1month, only introductory client metaphors may be available but notcustomizable, and only introductory feedback results may be returned.

As illustrated in FIG. 42, the registration account creator may be ableto select the availability of the event. For instance, the event may bemarked as public which makes it available to everybody and availableunder all event search results; the event may be marked as hidden whichmakes the event only available to anybody who knows the event identifieras a hidden event does not show up in search results; and the event maybe marked as private which makes is only visible to authorized, loggedin users. The participation information as illustrated in FIG. 42controls who is authorized to participate in providing feedback for theevent. In some embodiments, the availability of events may be controlledby providing a list of authorized users specified by the user making thereservation. The user creating the reservation may specify theauthorized users by providing their email addresses recognizable by thesystem 10, for example. The system 10 may also be operable to notifyeach member in the list of authorized users of the invitation to providefeedback. In this embodiment, only those users who are logged-in and onthe authorized user list will be able to see the event in the list ofavailable events.

FIG. 43 illustrates who may be able to view the event results. Theoptions on this page may include: no one, anonymous users, any logged-inusers, specific logged-in users etc. The specific logged-in usersauthorized to view event results may be determined from a list of emailaddresses, recognizable by the system 10, provided by the user makingthe reservation for the event associated to the event result. Thepresentation of the feedback results and availability of otherinformation may also be selected on this page. For instance, a userregistering an event may be able to select options such as simple graph,number of votes, max-min response etc. to be available as the eventresults.

FIG. 44 illustrates a page visible to a reservation account holder toenable him to see a list of events registered by the logged-in user. Foreach event, he/she can see an event identifier, a corresponding eventname, a start and stop time and date. This page may also allow thelogged-in user to click on any one of the events in the list to reviewthe options chosen when making the reservation. FIG. 45 illustrates alist of events made available to a logged-in user to represent all theevents that the logged-in user has scored. The logged-in user may clickon an event in the list to review his/her own scores for that event andjuxtapose them against other users scoring that event. The clicking onthe link may result in a page similar to the web page illustrated byFIG. 49. FIG. 46 illustrates a web page that is available to anauthorized user enabling him/her to see a link enabling the viewing of afeedback graph for an event that has either already taken place or iscurrently taking place. The linked page may be similar to the web pageillustrated by FIG. 10. The setup of this page includes the eventidentifier, the event name, start and stop time and date, a briefdescription of the event and a tweet about the event.

FIG. 47 illustrates an event search page that may be available to anyonewithout being logged in to Votini website. The search option can be usedby someone to see if an event of interest is registered in Votini. FIG.48 illustrates the search results that may be generated for someonewithout being logged in to the Votini website. This page represents whatan anonymous user might see. All the information on this page may beconsidered public and logging in to the Votini website may not requiredto view the features of this page. Clicking one of the events in thelist may prompt the party not yet logged in to view the feedback result,such as a feedback graph, for that event.

FIG. 49 illustrates a representation of feedback results for an event.The page may include an event identifier, a corresponding event name, agraph and a few graph options, such as average, maximum, minimum andvolume. In addition, an option of sharing and comparing the feedbackresults with other parties may be provided.

Referring now to FIG. 7 there is shown a method 200 of capturing eventfeedback in accordance with example embodiments.

At step 202, method involves configuring a transmission module of thecomputing device 14 to synchronize to an event record stored on a remotecomputer-readable storage module 60. The event record represents anevent of interest such that the transmission of the event feedback isconfigured to link the event feedback to the event record.

At different times during an event timeline, at step 204 method 200involves receiving the event feedback as feedback indicia associatedwith an event of interest at the computing device 14. For example,device 14 may push the data to or poll the data from the server 18, andthe server 18 may poll the data from or push the data to the client 16.

At step 206, method 200 involves operating a data processor 54 of thecomputing device 14 to assemble a feedback indicia array using thefeedback indicia. The feedback indicia array may store the plurality ofdifferent times and an associated plurality of feedback indicia, suchthat for each time in the plurality of different times, the feedbackindicia array comprises a time indicium pair comprising that time and anassociated feedback indicium in the associated plurality of feedbackindicia. The event timeline defines a period of time for the event forthat computing device.

At step 208, method 200 involves providing the event feedback by, duringthe event timeline, by periodically operating a transmission module 50of the computing device 14 to transmit each time indicium pair in thefeedback indicia array to a remote data processing module 64 until allof the feedback indicia array is transmitted to the remote dataprocessing module 64. The transmission of each time indicium pair in thefeedback indicia array is configured to link the time indicium pair tothe event record.

In some embodiments, method 200 may involve configuring the transmissionmodule of the computing device to synchronize to the event record storedon the remote computer-readable storage module 60 to link the feedbackindicia array to the event record by operating the transmission moduleto transmit an event identifier identifying the event record to theremote data processing module.

In some embodiments, method 200 may involve operating the transmissionmodule to transmit an event identifier identifying the event record tothe remote data processing module 64 by transmitting the eventidentifier with each time indicium pair in the feedback indicia array.For example this may involve establishing a session between the client16 and server 18 and only passing the event identifier once and relyingon the session state to maintain the relationship between the feedbacksent and the event that it was sent for. In other words, the eventidentifier may be sent once for a session and as long as the session isactive, the assumption is that the event is the same. This is merely anexample and other variations may be implemented.

In some embodiments, method 200 may involve configuring the transmissionmodule 50 of the computing device 14 to synchronize to the event recordstored on the remote computer-readable storage module 60 to link thefeedback indicia array to the event record comprises operating thetransmission module 50 to transmit each time indicium pair in thefeedback indicia array to a location, which may identify the eventrecord.

In some embodiments, an event identifier may be provided as part of aURL used to POST the JSON. That is to say, the event identifier may notbe in the feedback array or the location, but may be a parameter on theURL that goes to a location. For example, a URL may be of the form:protocol://location:porUcontext/view/action/parameter-1/value-1/parameter-2/value2/. . . , where the event identifier could be passed as a“parameter-N/value-N”. The metadata placed on the URL(event_parameter/event_id) may provide the link between the eventidentifier and the feedback in the JSON.

In other embodiments, other ways of sending feedback directly on the URLmay be used. For example, safe methods, such as HTTP GET method and HTTPPOST may be used. In another embodiment, industry substandard URLs, suchashttp://example.com/view/action/event/12345/time/238904589/indicium_(—)1/6/indicium_(—)2/0.35/ . . . , may be used. In other embodiments, idempotent methods mayalso be used for sending indicium to the server 18. In some embodiments,transmitting each time indicium pair in the feedback indicia array to alocation based on the event identifier comprises transmitting each timeindicium pair to a URL uniquely identifying that event. In someembodiments, the location does not mean a distinct server but rather adistinct URL.

In some embodiments, the feedback indicia for the event of interestreceived at the computing device 14 may include human feedback. Thefeedback indicia stored in the feedback indicia array may then includehuman feedback ratings, where each human feedback rating is provided bya user of the computing device 14, and a time human indicium pair of atime and the associated human feedback rating. In some embodiments,human feedback may not be received for each time in the event timeline.

In some embodiments at step 210, during a delayed time intervaloverlapping with the event timeline, the method 200 may involvereceiving at the transmission module 60 an aggregate feedback arraydetermined by the remote data processing module 64. The aggregatefeedback array may be determined by aggregating the time indicium pairstransmitted to the remote data processing module 64 with other feedbackindicia associated with the event received from other users. This mayinclude feedback received at different time segments in the timeline,for example.

The aggregate feedback array may include a runtime value and anaggregate result pair, the runtime value may be associated with a pointin time within the event timeline and the aggregate result beingdetermined from the associated feedback indicium in the time indiciumpair for that runtime value. This may not be for each time, but sometimes, for example.

In some embodiments, method 200 may involve receiving the aggregatefeedback array at the transmission module 50 by periodically receivingfor each time in of the different times, the runtime value and aggregateresult pair.

In some embodiments, some of the runtime value and aggregate resultpairs are received at the transmission module during the event timeline,and before some associated feedback indicia in the associated pluralityof feedback indicia are transmitted by the transmission module to theremote data processing module.

In some embodiments, method 200 may involve operating a display of thecomputing device 14 to display progressively more of the time indiciumpairs and the runtime value and aggregate result pairs during the eventtimeline.

The computing device 14 is coupled to at least one sensor device, suchas a heart rate sensor, a pulse rate sensor, a temperature sensor, asound level sensor, a light level sensor, a GPS location sensor, animage sensor and an olfactory sensor. The sensor device may measure asensor feedback value, such as biometric feedback indicating a biometriccharacteristic of a user and environmental feedback indicating anenvironmental condition around the user. In some embodiments, method 200may involve, at each time in a plurality of different sensor measurementtimes during the event timeline, measuring the one or more sensordevices for the sensor feedback value to provide sensor feedback values.

In some embodiments, method 200 may involve receiving at the computingdevice 14 the sensor feedback value measured at the sensor device and acorresponding sensor measurement time, and assembling a sensor feedbackindicia array therefrom. The sensor feedback indicia array stores aplurality of different sensor measurement times and an associatedplurality of sensor feedback values, such that for each time in theplurality of different sensor measurement times, the sensor feedbackvalue comprises a sensor measurement time sensor feedback value paircomprising that time and an associated sensor feedback value in theassociated plurality of sensor feedback values. In some embodiments,method 200 may involve, during the event timeline, periodicallyoperating the transmission module 50 of the computing device 14 totransmit each sensor measurement time and sensor feedback value pair inthe sensor feedback indicia array along with each time human indiciumpair in the human feedback indicia array to a remote data processingmodule 64 until all of the sensor feedback indicia array and the humanfeedback indicia array is transmitted to the remote data processingmodule.

In some embodiments, method 200 may involve operating a metaphorgenerator at the computing device 14, the metaphor generator beingoperable to configure a plurality of metaphors such that each metaphorin the plurality of metaphors is providable at the computing device 14and usable by the observer 12 to input a variable human feedback rating.

In some embodiments, method 200 may involve receiving from the user arequest for a metaphor in the plurality of metaphors configured by themetaphor generator, and providing at the computing device the metaphorrequested by the user. The device 14 may be configured to interpret andconvert received feedback data prior to sending the data to the server,and may also be configured to send raw feedback data directly to theserver.

At a plurality of different times during the event timeline, the method200 may involve receiving human feedback using the metaphor provided atthe computing device, converting the human feedback received using themetaphor into the human feedback indicia array. The plurality ofdifferent times may not necessarily mean all of the times in the eventtimeline. Put another way, even if feedback results are typicallysampled at a certain frequency or period, there may be periods, muchlonger than the usual period, during which the feedback results are notsampled. Each human feedback indicia array in the associated pluralityof human feedback indicia arrays may include a mapping of the humanfeedback received using the metaphor into a numerical value. Each timecorresponding to the human feedback in the plurality of different timesmay include the time at which the human feedback was received. Themapping of the human feedback into a numerical value is based on mappinginformation provided by the event record representing the event ofinterest.

In some embodiments, method 200 may involve transmitting at thetransmission module 50 an indication of the metaphor provided at thecomputing device 14 to receive human feedback from the user to theremote data processing module 64. The method may further involvereceiving at the transmission module 50 the aggregate feedback arraydetermined by the remote data processing module 54. The aggregatefeedback array is determined based on the indication of the metaphortransmitted.

In some embodiments, method 200 may involve operating the data processor54 at the computing device 14 to reconfigure the metaphor generator torestrict the plurality of metaphors to a subset of metaphors. The subsetof metaphors may include at least one metaphor, wherein the subset ofmetaphors to be provided at the computing device for the observer 12 toinput the human feedback rating is specified by the event record.

Receiving from the user a request for a metaphor in the plurality ofmetaphors comprises receiving from the user a request for a metaphor inthe subset of metaphors.

Referring now to FIG. 8 there is shown a method 300 of capturingfeedback in accordance with other example embodiments.

At step 302, the method 300 involves, on a computer-readable storagemodule 60, storing different event records for different events suchthat there may be an event record for each event.

At step 304, the method 300 involves, for each event record, receiving aplurality of feedback indicia arrays at a communication module 62, thecommunication module 62 being electronically linked to thecomputer-readable storage module for communication therewith. Eachfeedback indicia may store different times and feedback indicia, suchthat for each time, the feedback indicia includes an associated feedbackindicium.

At step 306, the method 300 involves, for each event record, operating adata processing module 64, linked to the computer-readable storagemodule 60 for communication therewith, to determine an aggregatefeedback result array from the feedback indicia arrays received for thatevent record. The aggregate feedback result array defines an associatedaggregate feedback timeline. For different times in that timeline theremay be aggregate feedback results, such that for each time in thattimeline, there may be an associated aggregate feedback result. Theaggregate feedback results may be determined by aggregating theplurality of feedback indicia for each feedback indicia array in theplurality of feedback indicia arrays based on the different times foreach feedback indicia array in the feedback indicia arrays.

In some embodiments, the method 300 may involve, for at least one eventrecord, receiving feedback indicia arrays at the communication module byreceiving the feedback indicia arrays from multiple devices 4, such asmobile devices 4, for example.

In some embodiments, the method 300 may involve receiving the feedbackindicia arrays from mobile devices 4 by receiving feedback indiciaarrays from the devices in real time by, for each feedback indicia arraytransmitted from a mobile device, receiving the plurality of feedbackindicia as an ordered sequence over time at the communication modulebased on the timeline for that feedback indicia array such that somefeedback indicia in the plurality of feedback indicia are received bythe communication module before other feedback indicia in the pluralityof feedback indicia are transmitted to the communication module by themobile device.

In some embodiments, the method 300 may involve receiving at thecommunication module 62 a request to register a new event by adding anew event record to the event records, and operating the data processingmodule 64 to add the new event record to the event records based oninformation in the request.

In some embodiments, the method 300 may involve receiving the request toregister the new event from a requester at the communication module 62by operating the data processing module 64 to further define the newevent record by receiving from the requester at the communication module62 and storing at the computer-readable storage module 62 at least onefeedback source acceptance attribute. The feedback source acceptanceattribute may identify a possible characteristic of the device 14 or auser of the device 14.

In some embodiments, the method 300 may involve receiving an unfilteredfeedback indicia arrays at the communication module 62, and thenoperating the data processing module 64 to filter out from theunfiltered feedback indicia arrays any feedback indicia arrays in theunfiltered feedback indicia arrays that may not satisfy the feedbacksource acceptance attribute when determining the aggregate feedbackresult array. The aggregate feedback result array may be determinedwithout considering any feedback indicia arrays filtered out from theunfiltered feedback indicia arrays.

In some embodiments, the feedback source acceptance attribute may beselectable by the requester from characteristics comprising location,age, gender, nationality, device 14 type and device 14 model.

In some embodiments, the feedback source acceptance attributes mayinclude feedback indicia array sources, which may identify a user or adevice 14. Each feedback indicia array received at the communicationmodule 62 may be received from an associated feedback indicia array andthe aggregated feedback result array may be determined withoutconsidering feedback from a source other than the feedback indicia arraysources.

In some embodiments, the method 300 may involve, on receiving therequest to register the new event from the requester at thecommunication module 62, operating the data processing module 64 tofurther define the new event record by receiving from the requester atthe communication module 62 and storing at the computer-readable storagemodule 60 at least one authorized feedback indicium kind selected from afeedback indicia kinds. The authorized feedback indicium kind mayinclude human feedback indicating a rating provided by a user, biometricfeedback indicating a biometric characteristic of the user, andenvironmental feedback indicating an environmental condition around theuser, for example.

In some embodiments, the method 300 may involve receiving an unfilteredfeedback indicia arrays at the communication module 62, and thenoperating the data processing module 64 to filter out any feedbackindicia arrays in the feedback indicia arrays defining feedback kindsother the authorized feedback indicium kind in determining the aggregatefeedback result array. The aggregate feedback result array may bedetermined without considering any feedback indicia arrays filtered outfrom the unfiltered feedback indicia arrays.

In some embodiments, the authorized feedback indicium kind may includethe human feedback and environmental feedback and biometric feedback.The feedback indicia arrays received for the new event record, mayinvolve the method 300 storing, for each time in the plurality ofdifferent times, an associated human feedback rating and one or moreenvironmental feedback entry and biometric feedback entry. The humanfeedback may include electro-mechanical feedback.

In some embodiments, at step 308, the method 300 may involve operatingthe data processing module 64 to analyze each feedback indicia arrayreceived at the communication module 62 to determine tentative mileposttimes from the different times for that feedback indicia array such thatthe feedback indicium corresponding to each tentative milepost timecorrespond to a time immediately before this milepost time by more thana threshold amount.

In some embodiments, at step 310, the method 300 may involve operatingthe data processing module 64 to compare the plurality of tentativemilepost times to determine confirmed milepost times in the associatedaggregate feedback timeline. The aggregate feedback result correspondingto each confirmed milepost time in the plurality of confirmed mileposttimes may differ from the aggregate feedback result corresponding to atime for the associated aggregate feedback timeline immediately beforethis confirmed milepost time by more than an aggregate threshold amount.

In some embodiments, the method 300 may involve, for each event recordin the plurality of different event records, operating the dataprocessing module 64 to determine the aggregate feedback result arrayreceived for that event record by determining the associated aggregatefeedback timeline by converting different times for each feedbackindicia array to a common timescale along the associated aggregatefeedback timeline based on the tentative milepost times determined foreach feedback indicia array.

In some embodiments, the method 300 may involve operating the dataprocessing module 64 to change the threshold amount when determining theaggregate feedback timeline.

In some embodiments, the method 300 may involve, for each feedbackindicia array, receiving at least one input tag from a user at thecommunication module 62;

In some embodiments, the method 300 may involve, for each feedbackindicia array, operating the data processing module 64 to determine auser selected timeline segment, a start time tag and an end time tagbased on the at least one input tag. The user selected timeline segmentmay correspond to a duration of time of a segment within an eventtimeline, the start time tag may correspond to a start time of the userselected timeline segment and the end time tag may correspond to an endtime of the user selected timeline segment. The feedback indicia arraysmay be selected such that the user selected timeline segment of onefeedback indicia array to differs in length from a different feedbackindicia array. In some embodiments, the method 300 may involve operatingthe data processing module 64 to determine the aggregate feedback resultarray by defining an associated aggregate feedback timeline by comparingat least two user selected timeline segments for the at least twofeedback indicia arrays to determine at least one time scale adjustmentand adjusting the relative timing of at least some of the plurality ofthe feedback indicia arrays based on the at least one time scaleadjustment before aggregating the plurality of feedback indicia arrays.

In some embodiments, the data processing module 64 may be operated inreal time to determine an updateable version of the aggregate feedbackresult array based, in part, on a part of a feedback indicia arrayreceived from the device 14 before a remainder of that feedback indiciaarray is received at the communication module 62. The communicationmodule 62 may progressively transmit updated versions of the updateableversion of the aggregate feedback result array to the device 14 beforeall of that feedback indicia array from the device 14 is received at thecommunication module 62.

In some embodiments, the method 300 may involve storing the plurality ofdifferent event records for the plurality of different events comprisesstoring two or more event records for the same event.

In some embodiments, the method 300 may involve, for event records,operating the communication module 62 to receive and thecomputer-readable storage module 62 to store feedback indicia arraysources. Each feedback indicia array may identify at least one device14, a user of the device 14 and a location of the device 14.

In some embodiments, the method 300 may involve receiving identificationinformation from a device 14 at the communication module 62, theidentification information such as the device name, device model, deviceoperating system, device identifier, device GPS location, useridentifier and user password. For example, the identificationinformation may include identifying one or more devices, a user of thedevice and a location of the device;

In some embodiments, the method 300 may involve, at the data processingmodule 64, comparing information identified by each of the feedbackindicia array source corresponding to each event record in the pluralityof event records stored at the computer-readable storage module 60 tocorresponding information identified in the identification informationreceived from the device 14. In some embodiments, the method 300 mayinvolve generating a list of event records from the plurality of eventrecords stored at the computer-readable storage medium 60 based on thecomparison such that for each event record in the list of event records,at least one feedback indicia array source in the plurality of feedbackindicia array sources identifies all that information also identified inthe identification information received from the device.

Embodiments have been described herein by way of example only. Variousmodification and variations may be made to these exemplary embodimentswithout departing from the spirit and scope of the invention, which islimited only by the appended claims.

Attached hereto is Appendix I which provides example applicationprogramming interfaces in accordance with example embodiments describedherein, and Appendix II which provides example JavaScript ObjectNotation protocols in accordance with example embodiments describedherein.

We claim:
 1. A method for capturing event feedback, the methodcomprising: a) on a computer-readable storage module, storing aplurality of different event records for a plurality of different eventssuch that the plurality of different event records comprises acorresponding event record for each event in the plurality of differentevents; b) for each event record in the plurality of different eventrecords, receiving a plurality of feedback indicia arrays at acommunication module, the communication module being electronicallylinked to the computer-readable storage module for communicationtherewith, wherein each feedback indicia array in the plurality offeedback indicia arrays stores a plurality of different times and aplurality of feedback indicia, such that for each time in the pluralityof different times, the plurality of feedback indicia comprises anassociated feedback indicium; and c) for each event record in theplurality of different event records, operating a data processingmodule, linked to the computer-readable storage module for communicationtherewith, to determine an aggregate feedback result array from theplurality of feedback indicia arrays received for that event record,wherein the aggregate feedback result array defines an associatedaggregate feedback timeline, and for a plurality of different times inthat timeline, a plurality of aggregate feedback results, such that foreach time in the plurality of different times in that timeline, theplurality of aggregate feedback results comprises an associatedaggregate feedback result, the plurality of aggregate feedback resultsbeing determined by aggregating the plurality of feedback indicia foreach feedback indicia array in the plurality of feedback indicia arraysbased on the plurality of different times for each feedback indiciaarray in the plurality of feedback indicia arrays.
 2. The method asdefined in claim 1 wherein, for at least one event record in theplurality of event records, receiving the plurality of feedback indiciaarrays at the communication module comprises receiving the plurality offeedback indicia arrays from a plurality of mobile devices.
 3. Themethod as defined in claim 2 wherein receiving the plurality of feedbackindicia arrays from the plurality of mobile devices comprises receivingthe plurality of feedback indicia arrays from the plurality of mobiledevices in real time by, for each feedback indicia array transmittedfrom a mobile device, receiving the plurality of feedback indicia as anordered sequence over time at the communication module based on thetimeline for that feedback indicia array such that some feedback indiciain the plurality of feedback indicia are received by the communicationmodule before other feedback indicia in the plurality of feedbackindicia are transmitted to the communication module by the mobiledevice.
 4. The method as defined in claim 2 further comprising receivingat the communication module a request to register a new event by addinga new event record to the plurality of event records, and operating thedata processing module to add the new event record to the plurality ofevent records based on information in the request.
 5. The method asdefined in claim 4 wherein on receiving the request to register the newevent from a requester at the communication module, the method furthercomprising operating the data processing module to further define thenew event record by receiving from the requester at the communicationmodule and storing at the computer-readable storage module at least onefeedback source acceptance attribute, wherein the at least one feedbacksource acceptance attribute identifies a possible characteristic of amobile device in the plurality of mobile devices, or a user of themobile device; and receiving an unfiltered plurality of feedback indiciaarrays at the communication module, and then operating the dataprocessing module to filter out from the unfiltered plurality offeedback indicia arrays any feedback indicia arrays in the unfilteredplurality of feedback indicia arrays not satisfying the at least onefeedback source acceptance attribute in determining the aggregatefeedback result array, such that the aggregate feedback result array isdetermined without considering any feedback indicia arrays filtered outfrom the unfiltered plurality of feedback indicia arrays.
 6. The methodas defined in claim 5 wherein the at least one feedback sourceacceptance attribute is selectable by the requester from a plurality ofcharacteristics comprising location, age, gender, nationality, mobiledevice type and mobile device model.
 7. The method as defined in claim 5wherein the feedback source acceptance attributes comprises a pluralityof feedback indicia array sources, wherein each feedback indicia arraysource identifies a user or a mobile device in the plurality of mobiledevices, and wherein each feedback indicia array in the plurality offeedback indicia arrays received at the communication module is receivedfrom an associated feedback indicia array source in the plurality offeedback indicia array sources and wherein the aggregated feedbackresult array is determined without considering feedback from a sourceother than the plurality of feedback indicia array sources.
 8. Themethod as defined in claim 4 wherein on receiving the request toregister the new event from the requester at the communication module,the method further comprising operating the data processing module tofurther define the new event record by receiving from the requester atthe communication module and storing at the computer-readable storagemodule at least one authorized feedback indicium kind selected from aplurality of feedback indicia kinds wherein the at least one authorizedfeedback indicium kind is selected from a group consisting of humanfeedback indicating a rating provided by a user, biometric feedbackindicating a biometric characteristic of the user, and environmentalfeedback indicating an environmental condition around the user; andreceiving an unfiltered plurality of feedback indicia arrays at thecommunication module, and then operating the data processing module tofilter out any feedback indicia arrays in the unfiltered plurality offeedback indicia arrays defining feedback kinds other than the at leastone authorized feedback indicium kind in determining the aggregatefeedback result array, such that the aggregate feedback result array isdetermined without considering any feedback indicia arrays filtered outfrom the unfiltered plurality of feedback indicia arrays.
 9. The methodas defined in claim 8 wherein the at least one authorized feedbackindicium kind comprises the human feedback and at least one ofenvironmental feedback and biometric feedback; and, the plurality offeedback indicia arrays received for the new event record, is configuredto store, for each time in the plurality of different times, anassociated human feedback rating and at least one of an environmentalfeedback entry and a biometric feedback entry.
 10. The method as definedin claim 8 wherein the human feedback comprises electro-mechanicalfeedback.
 11. The method as defined in claim 1 further comprisingoperating the data processing module to analyze each feedback indiciaarray in the plurality of feedback indicia arrays received at thecommunication module to determine a plurality of tentative mileposttimes in the plurality of different times for that feedback indiciaarray such that the feedback indicium corresponding to each tentativemilepost time in the plurality of milepost times differs from thefeedback indicium corresponding to a time in the plurality of differenttimes immediately before this milepost time by more than a thresholdamount; and operating the data processing module to compare theplurality of tentative milepost times for each feedback indicia array inthe plurality of feedback indicia arrays with the plurality of tentativemilepost times for other feedback indicia arrays in the plurality offeedback indicia arrays to determine a plurality of confirmed mileposttimes in the associated aggregate feedback timeline, wherein theaggregate feedback result corresponding to each confirmed milepost timein the plurality of confirmed milepost times differs from the aggregatefeedback result corresponding to a time in the plurality of differenttimes for the associated aggregate feedback timeline immediately beforethis confirmed milepost time by more than an aggregate threshold amount.12. The method as defined in claim 11 wherein for each event record inthe plurality of different event records, operating the data processingmodule to determine the aggregate feedback result array from theplurality of feedback indicia arrays received for that event recordcomprises determining the associated aggregate feedback timeline byconverting the plurality of different times for each feedback indiciaarray in the plurality of feedback indicia arrays to a common timescalealong the associated aggregate feedback timeline based on the pluralityof tentative milepost times determined for each feedback indicia array.13. The method as defined in claim 11 further comprising operating thedata processing module to change the threshold amount when determiningthe aggregate feedback timeline.
 14. The method as defined in claim 1further comprising for each feedback indicia array in at least twofeedback indicia arrays in the plurality of feedback indicia arrays,receiving at least one input tag from a user at the communicationmodule; for each feedback indicia array in the at least two feedbackindicia arrays, operating the data processing module, to determine auser selected timeline segment, a start time tag and an end time tagbased on the at least one input tag, wherein the user selected timelinesegment corresponds to a duration of time of a segment within an eventtimeline, the start time tag corresponds to a start time of the userselected timeline segment and the end time tag corresponds to an endtime of the user selected timeline segment, and wherein the at least twofeedback indicia arrays are selected such that the user selectedtimeline segment of one feedback indicia array in the at least twofeedback indicia arrays differs in length from a different feedbackindicia array in the at least two feedback indicia arrays; and operatingthe data processing module to determine the aggregate feedback resultarray by defining an associated aggregate feedback timeline by comparingat least two user selected timeline segments for the at least twofeedback indicia arrays to determine at least one time scale adjustmentand adjusting the relative timing of at least some of the plurality ofthe feedback indicia arrays based on the at least one time scaleadjustment before aggregating the plurality of feedback indicia arrays.15. The method as defined in claim 3 wherein the data processing moduleis operated in real time to determine an updateable version of theaggregate feedback result array based, in part, on a part of a feedbackindicia array in the plurality of feedback indicia arrays received fromone mobile device before a remainder of that feedback indicia array isreceived at the communication module; and the communication moduleprogressively transmits updated versions of the updateable version ofthe aggregate feedback result array to the one mobile device before allof that feedback indicia array from the one mobile device is received atthe communication module.
 16. The method as defined in claim 4 whereinstoring the plurality of different event records for the plurality ofdifferent events comprises storing two or more event records for thesame event.
 17. The method as defined in claim 2 wherein for the atleast one event record in the plurality of event records, the methodfurther comprising operating the communication module to receive and thecomputer-readable storage module to store a plurality of feedbackindicia array sources wherein each feedback indicia array source in theplurality of feedback indicia array sources identifies at least one of amobile device in the plurality of mobile devices, a user of the mobiledevice and a location of the mobile device; receiving identificationinformation from a mobile device in the plurality of mobile devices atthe communication module, the identification information comprisingmobile device name, mobile device model, mobile device operating system,mobile device identifier, mobile device GPS location, user identifierand user password, the identification information identifying at leastone of a mobile device, a user of the mobile device and a location ofthe mobile device; at the data processing module, comparing informationidentified by each of the feedback indicia array source in the pluralityof feedback indicia array sources corresponding to each event record inthe plurality of event records stored at the computer-readable storagemodule to corresponding information identified in the identificationinformation received from the mobile device; and generating a list ofevent records from the plurality of event records stored at thecomputer-readable storage medium based on the comparison such that foreach event record in the list of event records, at least one feedbackindicia array source in the plurality of feedback indicia array sourcesidentifies all that information also identified in the identificationinformation received from the mobile device.
 18. A method for capturingand communicating event feedback using a computing device, the methodcomprising: a) configuring a transmission module of the computing deviceto synchronize to an event record stored on a remote computer-readablestorage module, wherein the event record represents an event of interestsuch that the transmission of the event feedback is configured to linkthe event feedback to the event record; b) at a plurality of differenttimes during an event timeline, receiving the event feedback as feedbackindicia associated with an event of interest at the computing device; c)operating a data processor of the computing device to assemble afeedback indicia array using the feedback indicia, wherein the feedbackindicia array stores the plurality of different times and an associatedplurality of feedback indicia, such that for each time in the pluralityof different times, the feedback indicia array comprises a time indiciumpair comprising that time and an associated feedback indicium in theassociated plurality of feedback indicia, wherein the event timelinedefines a period of time for the event for that computing device; and d)providing the event feedback by, during the event timeline, periodicallyoperating a transmission module of the computing device to transmit eachtime indicium pair in the feedback indicia array to a remote dataprocessing module until all of the feedback indicia array is transmittedto the remote data processing module, wherein the transmission of eachtime indicium pair in the feedback indicia array is configured to linkthe time indicium pair to the event record.
 19. The method as defined inclaim 18, wherein configuring the transmission module of the computingdevice to synchronize to the event record stored on the remotecomputer-readable storage module to link the feedback indicia array tothe event record comprises operating the transmission module to transmitan event identifier identifying the event record to the remote dataprocessing module.
 20. The method as defined in claim 19, whereinoperating the transmission module to transmit an event identifieridentifying the event record to the remote data processing modulecomprises transmitting the event identifier with each time indicium pairin the feedback indicia array.
 21. The method as defined in claim 18,wherein configuring the transmission module of the computing device tosynchronize to the event record stored on the remote computer-readablestorage module to link the feedback indicia array to the event recordcomprises operating the transmission module to transmit each timeindicium pair in the feedback indicia array to a location, wherein thelocation identifies the event record.
 22. The method as defined in claim18 wherein the feedback indicia for the event of interest received atthe computing device comprises human feedback, wherein the associatedplurality of feedback indicia stored in the feedback indicia arraycomprises a plurality of human feedback ratings, each human feedbackrating being provided by a user of the computing device, such that foreach time in the plurality of different times, the feedback indiciaarray comprises a time human indicium pair comprising that time and anassociated human feedback rating in the associated plurality of humanfeedback ratings.
 23. The method as defined in claim 18 furthercomprising during a delayed time interval overlapping with the eventtimeline, receiving at the transmission module an aggregate feedbackarray determined by the remote data processing module, wherein theaggregate feedback array is determined by aggregating the time indiciumpairs transmitted to the remote data processing module with otherfeedback indicia associated with the event received from other users.24. The method as defined in claim 23 wherein for each time in theplurality of different times, the aggregate feedback array comprises aruntime value and an aggregate result pair, the runtime value beingassociated with a point in time within the event timeline and theaggregate result being determined from the associated feedback indiciumin the time indicium pair for that runtime value; and receiving theaggregate feedback array at the transmission module comprisesperiodically receiving for each time in the plurality of differenttimes, the runtime value and aggregate result pair.
 25. The method asdefined in claim 24 wherein some of the runtime value and aggregateresult pairs are received at the transmission module during the eventtimeline, and before some associated feedback indicia in the associatedplurality of feedback indicia are transmitted by the transmission moduleto the remote data processing module.
 26. The method as defined in claim25 wherein the computing device is configured for wireless communicationwith the remote data processing module and the remote computer-readablestorage module, the feedback indicia array is wirelessly transmitted tothe remote data processing module, and the aggregate feedback array isreceived by wireless transmission from the remote data processingmodule.
 27. The method as defined in claim 26 further comprisingoperating a display of the computing device to display progressivelymore of the time indicium pairs and the runtime value and aggregateresult pairs during the event timeline.
 28. The method as defined inclaim 23, wherein the computing device is coupled to at least one sensordevice, the at least one sensor device being one of a heart rate sensor,a pulse rate sensor, a temperature sensor, a sound level sensor, a lightlevel sensor, a GPS location sensor, an image sensor and an olfactorysensor, wherein the at least one sensor device measures a sensorfeedback value, the sensor feedback value being one of biometricfeedback indicating a biometric characteristic of a user andenvironmental feedback indicating an environmental condition around theuser, the method further comprising at each time in a plurality ofdifferent sensor measurement times during the event timeline, measuringat the at least one sensor device the sensor feedback value to provide aplurality of sensor feedback values; receiving at the computing devicethe at least one sensor feedback value measured at the sensor device anda corresponding sensor measurement time in the plurality of sensorfeedback values and assembling a sensor feedback indicia arraytherefrom, wherein the sensor feedback indicia array stores a pluralityof different sensor measurement times and an associated plurality ofsensor feedback values, such that for each time in the plurality ofdifferent sensor measurement times, the sensor feedback value comprisesa sensor measurement time sensor feedback value pair comprising thattime and an associated sensor feedback value in the associated pluralityof sensor feedback values; and during the event timeline, periodicallyoperating the transmission module of the computing device to transmiteach sensor measurement time sensor feedback value pair in the sensorfeedback indicia array along with each time human indicium pair in thehuman feedback indicia array to a remote data processing module untilall of the sensor feedback indicia array and the human feedback indiciaarray is transmitted to the remote data processing module.
 29. Themethod as defined in claim 23 the method further comprising operating ametaphor generator at the computing device, the metaphor generator beingoperable to configure a plurality of metaphors such that each metaphorin the plurality of metaphors is providable at the computing device andusable by the observer to input a variable human feedback rating;receiving from the user a request for a metaphor in the plurality ofmetaphors configured by the metaphor generator; providing at thecomputing device the metaphor requested by the user; at a plurality ofdifferent times during the event timeline, receiving human feedbackusing the metaphor provided at the computing device; and converting thehuman feedback received using the metaphor into the human feedbackindicia array, wherein each human feedback indicia array in theassociated plurality of human feedback indicia arrays comprises amapping of the human feedback received using the metaphor into anumerical value and each time corresponding to the human feedback in theplurality of different times comprising the time at which the humanfeedback was received, wherein the mapping of the human feedback into anumerical value is based on mapping information provided by the eventrecord representing the event of interest.
 30. The method as defined inclaim 29, the method further comprising transmitting at the transmissionmodule an indication of the metaphor provided at the computing device toreceive human feedback from the user to the remote data processingmodule; and receiving at the transmission module the aggregate feedbackarray determined by the remote data processing module, wherein theaggregate feedback array is determined based on the indication of themetaphor transmitted.
 31. The method as defined in claim 29, the methodfurther comprising operating the data processor at the computing deviceto reconfigure the metaphor generator to restrict the plurality ofmetaphors to a subset of metaphors, the subset of metaphors comprisingat least one metaphor, wherein the subset of metaphors to be provided atthe computing device for the observer to input the human feedback ratingis specified by the event record; and wherein receiving from the user arequest for a metaphor in the plurality of metaphors comprises receivingfrom the user a request for a metaphor in the subset of metaphors.
 32. Asystem for capturing event feedback, the system comprising; a) acomputer-readable storage module for storing a plurality of differentevent records for a plurality of different events such that theplurality of different event records comprise a corresponding eventrecord for each event in the plurality of different events; b) acommunication module configured, for each event record in the pluralityof different event records, to receive a plurality of feedback indiciaarrays for that event record, the communication module beingelectronically linked to the computer-readable storage module forcommunication therewith, wherein each feedback indicia array in theplurality of feedback indicia arrays stores a plurality of differenttimes and a plurality of feedback indicia, such that for each time inthe plurality of different times, the plurality of feedback indiciacomprises an associated feedback indicium; and c) a data processingmodule linked to the computer-readable storage module for communicationtherewith, the data processing module being configured to determine, foreach event record in the plurality of different event records, anaggregate feedback result array from the plurality of feedback indiciaarrays received for that event record, wherein the aggregate feedbackresult array defines an associated aggregate feedback timeline, and fora plurality of different times in that timeline, a plurality ofaggregate feedback results, such that for each time in the plurality ofdifferent times in that timeline, the plurality of aggregate feedbackresults comprises an associated aggregate feedback result, the pluralityof aggregate feedback results being determined by aggregating theplurality of feedback indicia for each feedback indicia array in theplurality of feedback indicia arrays based on the plurality of differenttimes for each feedback indicia array in the plurality of feedbackindicia arrays.
 33. The system as defined in claim 32 wherein, for atleast one event record in the plurality of event records, thecommunication module is configured to receive the plurality of feedbackindicia arrays from a plurality of mobile devices.
 34. The system asdefined in claim 33 wherein the communication module is configured toreceive the plurality of feedback indicia arrays from the plurality ofmobile devices in real time by, for each feedback array transmitted fromeach mobile device, receiving the plurality of feedback indicia as anordered sequence over time at the communication module based on thetimeline for that feedback indicia array such that some feedback indiciain the plurality of feedback indicia are receivable by the communicationmodule before other feedback indicia in the plurality of feedbackindicia are transmitted to the communication module by the mobiledevice.
 35. The system as defined in claim 33 wherein the communicationmodule is configured to receive a request to register a new event byadding a new event record to the plurality of event records, and thedata processing module is configured to add the new event record to theplurality of event records based on information in the request.
 36. Thesystem as defined in claim 35 wherein the data processing module isconfigured to further define the new event record by receiving from arequester at the communication module and storing in thecomputer-readable storage module at least one feedback source acceptanceattribute, wherein the feedback source acceptance attribute identifies apossible characteristic of a mobile device in the plurality of mobiledevices, or a user of the mobile device, the communication module isconfigured to receive an unfiltered plurality of feedback indiciaarrays; and the data processing module is operable to filter out fromthe unfiltered plurality of feedback indicia arrays any feedback indiciaarrays in the unfiltered plurality of feedback indicia arrays notsatisfying the at least one feedback source acceptance attribute indetermining the aggregate feedback result array, such that the aggregatefeedback result array is determined without considering any feedbackindicia arrays filtered out from the unfiltered plurality of feedbackindicia arrays.
 37. The system as defined in claim 36 wherein thecommunication module is configured to display a plurality ofcharacteristics comprising location, age, gender, nationality, mobiledevice type and mobile device model to the requester, the communicationmodule further comprising an input operable by the requester to selectthe at least one feedback source acceptance attribute from the pluralityof characteristics comprising location, age, gender, nationality, mobiledevice type and mobile device model.
 38. The system as defined in claim36 wherein the feedback source acceptance attribute comprises aplurality of feedback indicia array sources, wherein each feedbackindicia array source identifies a user or a mobile device in theplurality of mobile devices, and wherein each feedback indicia array inthe plurality of feedback indicia arrays received at the communicationmodule is received from an associated feedback indicia array source inthe plurality of feedback indicia array sources and wherein the dataprocessing module is configured to determine the aggregated feedbackresult array without considering feedback from a source other than theplurality of feedback indicia array sources.
 39. The system as definedin claim 35 wherein on receiving the request to register the new eventfrom the requester, the data processing module is configured to furtherdefine the new event record by receiving from a requester at thecommunication module and storing in the computer-readable storage moduleat least one authorized feedback indicium kind selected from a pluralityof feedback indicia kinds wherein the at least one authorized feedbackindicium kind is selected from a group consisting of human feedbackindicating a rating provided by a user, biometric feedback indicating abiometric characteristic of the user, and environmental feedbackindicating an environmental condition around the user; the communicationmodule is configured to receive an unfiltered plurality of feedbackindicia arrays; and the data processing module is operable to filter outany feedback indicia arrays in the unfiltered plurality of feedbackindicia arrays defining feedback kinds other than the at least oneauthorized feedback indicium kind, such that the aggregate feedbackresult array is determined without considering any feedback indiciaarrays filtered out from the unfiltered plurality of feedback indiciaarrays.
 40. The system as defined in claim 39 wherein the at least oneauthorized feedback indicium kind comprises the human feedback and atleast one of environmental feedback and biometric feedback; and, theplurality of feedback indicia arrays received for the new event record,is configured to store, for each time in the plurality of differenttimes, an associated human feedback rating and at least one of anenvironmental feedback entry and a biometric feedback entry.
 41. Thesystem as defined in claim 39 wherein the human feedback compriseselectro-mechanical feedback.
 42. The system as defined in claim 32wherein the data processing module is configured to analyze eachfeedback indicia array in the plurality of feedback indicia arraysreceived at the communication module to determine a plurality oftentative milepost times in the plurality of different times for thatfeedback indicia array such that the feedback indicium corresponding toeach tentative milepost time in the plurality of milepost times differsfrom the feedback indicium corresponding to a time in the plurality ofdifferent times immediately before this milepost time by more than athreshold amount; and compare the plurality of tentative milepost timesfor each feedback indicia array in the plurality of feedback indiciaarrays with the plurality of tentative milepost times for other feedbackindicia arrays in the plurality of feedback indicia arrays to determinea plurality of confirmed milepost times in the associated aggregatefeedback timeline, wherein the aggregate feedback result correspondingto each confirmed milepost time in the plurality of confirmed mileposttimes differs from the aggregate feedback result corresponding to a timein the plurality of different times for the associated aggregatefeedback timeline immediately before this confirmed milepost time bymore than an aggregate threshold amount.
 43. The system as defined inclaim 42 wherein for each event record in the plurality of differentevent records, the data processing module is configured to determine theaggregate feedback result array from the plurality of feedback indiciaarrays received for that event record by determining the associatedaggregate feedback timeline by converting the plurality of differenttimes for each feedback indicia array in the plurality of feedbackindicia arrays to a common timescale along the associated aggregatefeedback timeline based on the plurality of tentative milepost timesdetermined for each feedback indicia array.
 44. The system as defined inclaim 42 wherein the data processing module is further operable tochange the threshold amount when determining the aggregate feedbacktimeline.
 45. The system as defined in claim 32 wherein thecommunication module is configured to receive at least one input tagfrom a user for each feedback indicia array in at least two feedbackindicia arrays in the plurality of feedback indicia arrays; and the dataprocessing module is operable to determine, for each feedback indiciaarray in the at least two feedback indicia arrays, a user selectedtimeline segment, a start time tag and an end time tag based on the atleast one input tag, wherein the user selected timeline segmentcorresponds to a duration of time of a segment within an event timeline,the start time tag corresponds to a start time of the user selectedtimeline segment and the end time tag corresponds to an end time of theuser selected timeline segment, and wherein the at least two feedbackindicia arrays are selected such that the user selected timeline segmentof one feedback indicia array in the at least two feedback indiciaarrays differs in length from a different feedback indicia array in theat least two feedback indicia arrays; and determine the aggregatefeedback result array by defining an associated aggregate feedbacktimeline by comparing at least two user selected timeline segments forthe at least two feedback indicia arrays to determine at least one timescale adjustment and adjusting the relative timing of at least some ofthe plurality of the feedback indicia arrays based on the at least onetime scale adjustment before aggregating the plurality of feedbackindicia arrays.
 46. The system as defined in claim 34 wherein the dataprocessing module is configured to operate in real time to determine anupdateable version of the aggregate feedback result array based, inpart, on a part of a feedback indicia array in the plurality of feedbackindicia arrays received from one mobile device before a remainder ofthat feedback indicia array is received at the communication module; andthe communication module is operable to progressively transmit updatedversions of the updateable version of the aggregate feedback resultarray to the one mobile device before all of that feedback indicia arrayfrom the one mobile device is received at the communication module. 47.The system as defined in claim 35 wherein the computer-readable storagemodule is operable to store two or more event records for the sameevent.
 48. The system as defined in claim 33 wherein for the at leastone event record in the plurality of event records, thecomputer-readable storage module is configured to store a plurality offeedback indicia array sources, wherein each feedback indicia arraysource in the plurality of feedback indicia array sources identifies atleast one of a mobile device in the plurality of mobile devices, a userof the mobile device and a location of the mobile device; thecommunication module is configured to receive identification informationfrom a mobile device in the plurality of mobile devices, theidentification information comprising mobile device name, mobile devicemodel, mobile device operating system, mobile device identifier, mobiledevice GPS location, user identifier and user password, theidentification information also identifying at least one of a mobiledevice, a user of the mobile device and a location of the mobile device;the data processing module is configured to compare informationidentified by each of the feedback indicia array source in the pluralityof feedback indicia array sources stored for each event records in theplurality of event records stored at the computer-readable storagemodule to corresponding information identified in the identificationinformation received from the mobile device; and the data processingmodule is further configured to generate a list of event records in theplurality of event records stored at the computer-readable storagemedium based on the comparison such that for each event record in thelist of event records, at least one feedback indicia array source in theplurality of feedback indicia array sources identifies all thatinformation also identified in the identification information receivedfrom the mobile device.
 49. A computing device for capturing andcommunicating event feedback, the computing device comprising: atransmission module configured to synchronize to an event record storedon a remote computer-readable storage module, wherein the event recordrepresents an event of interest such that transmission of event feedbackat the transmission module is configured to link the event feedback tothe event record; a user interface module configured, at a plurality ofdifferent times during an event timeline, to receive the event feedbackas feedback indicia associated with an event of interest; and a dataprocessor configured to assemble a feedback indicia array using thefeedback indicia, wherein the feedback indicia array stores theplurality of different times and an associated plurality of feedbackindicia, such that for each time in the plurality of different times,the feedback indicia array comprises a time indicium pair comprisingthat time and an associated feedback indicium in the associatedplurality of feedback indicia, wherein the event timeline defines aperiod of time for the event for that computing device; and wherein thetransmission module is configured, during the event timeline, to providethe event feedback by periodically transmitting each time indicium pairin the feedback indicia array to a remote data processing module untilall of the feedback indicia array is transmitted to the remote dataprocessing module, wherein the transmission of each time indicium pairin the feedback indicia array is configured to link the time indiciumpair to the event record.
 50. The computing device as defined in claim49, wherein the transmission module is configured to synchronize to theevent record stored on the remote computer-readable storage module tolink the feedback indicia array to the event record by transmitting anevent identifier identifying the event record to the remote dataprocessing module.
 51. The computing device as defined in claim 50,wherein the transmission module is configured to transmit the eventidentifier with each time indicium pair in the feedback indicia array tothe remote data processing module.
 52. The computing device as definedin claim 49, wherein the transmission module is configured tosynchronize to the event record stored on the remote computer-readablestorage module to link the feedback indicia array to the event record bytransmitting each time indicium pair in the feedback indicia array to alocation, wherein the location identifies the event record.
 53. Thecomputing device as defined in claim 49 wherein the user interfacemodule is configured, for the event of interest, to receive feedbackindicia comprising human feedback, wherein the associated plurality offeedback indicia stored in the feedback indicia array comprises aplurality of human feedback ratings, each human feedback rating beingprovided by a user of the computing device, such that for each time inthe plurality of different times, the feedback indicia array comprises atime human indicium pair comprising that time and an associated humanfeedback rating in the associated plurality of human feedback ratings.54. The computing device as defined in claim 49 wherein the transmissionmodule is, during a delayed time interval overlapping with the eventtimeline, configured to receive an aggregate feedback array determinedat the remote data processing module, wherein the aggregate feedbackarray is determined by aggregating the time indicium pairs transmittedto the remote data processing module with other feedback indiciaassociated with the event received from other users.
 55. The computingdevice as defined in claim 54 wherein for each time in the plurality ofdifferent times, the aggregate feedback array comprises a runtime valueand an aggregate result pair, the runtime value being associated with apoint in time within the event timeline and the aggregate result beingdetermined at the remote data processing module from the associatedfeedback indicium in the time indicium pair for that runtime value; andthe transmission module is configured, for each time in the plurality ofdifferent times, to periodically receive the runtime value and aggregateresult pair.
 56. The computing device as defined in claim 55 wherein thetransmission module is configured to receive some of the runtime valueand aggregate result pairs during the event timeline and beforetransmitting some associated feedback indicia in the associatedplurality of feedback indicia to the remote data processing module. 57.The computing device as defined in claim 56 configured for wirelesscommunication with the remote data processing module and the remotecomputer-readable storage module, wherein the transmission module isconfigured to wirelessly transmit the feedback indicia array to theremote data processing module and wirelessly receive the aggregatefeedback array from the remote data processing module.
 58. The computingdevice as defined in claim 57 comprising a display, wherein the displayis, during the event timeline, configured to progressively display moreof the time indicium pairs and the runtime value and aggregate resultpairs.
 59. The computing device as defined in claim 54 furthercomprising at least one sensor device, the at least one sensor devicebeing one of a heart rate sensor, a pulse rate sensor, a temperaturesensor, a sound level sensor, a light level sensor, a GPS locationsensor, an image sensor and an olfactory sensor, wherein the at leastone sensor device is configured, at each time in a plurality ofdifferent sensor measurement times during the event timeline, to measurea sensor feedback value to provide a plurality of sensor feedbackvalues, each sensor feedback value being one of biometric feedbackindicating a biometric characteristic of a user and environmentalfeedback indicating an environmental condition around the user; the dataprocessor being configured to receive the at least one sensor feedbackvalue measured at the sensor device and a corresponding sensormeasurement time in the plurality of sensor feedback values, andassemble a sensor feedback indicia array therefrom, wherein the sensorfeedback indicia array stores a plurality of different sensormeasurement times and an associated plurality of sensor feedback values,such that for each time in the plurality of different sensor measurementtimes, the sensor feedback value comprises a sensor measurement timesensor feedback value pair comprising that time and an associated sensorfeedback value in the associated plurality of sensor feedback values;and the transmission module being configured, during the event timeline,to periodically transmit each sensor measurement time sensor feedbackvalue pair in the sensor feedback indicia array along with each timehuman indicium pair in the human feedback indicia array to a remote dataprocessing module until all of the sensor feedback indicia array and thehuman feedback indicia array is transmitted to the remote dataprocessing module.
 60. The computing device as defined in claim 54further comprising a metaphor generator operable to configure aplurality of metaphors such that each metaphor in the plurality ofmetaphors is providable at the computing device and usable by theobserver to input a variable human feedback rating; wherein the userinterface module is configured to receive from the user a request for ametaphor in the plurality of metaphors configured by the metaphorgenerator; to provide the metaphor requested by the user; and toreceive, at a plurality of different times during the event timeline,human feedback using the metaphor provided; and the data processor isconfigured to convert the human feedback received using the metaphorinto the human feedback indicia array, wherein each human feedbackindicia array in the associated plurality of human feedback indiciaarrays comprises a mapping of the human feedback received using themetaphor into a numerical value and each time corresponding to the humanfeedback in the plurality of different times comprising the time atwhich the human feedback was received, wherein the mapping of the humanfeedback into a numerical value is based on mapping information providedby the event record representing the event of interest.
 61. Thecomputing device as defined in claim 60 wherein the transmission moduleis configured to transmit an indication of the metaphor provided at thecomputing device to receive human feedback from the user to the remotedata processing module; and receive at the transmission module theaggregate feedback array determined by the remote data processingmodule, wherein the aggregate feedback array is determined based on theindication of the metaphor transmitted.
 62. The computing device asdefined in claim 60, wherein the data processor is operable toreconfigure the metaphor generator to restrict the plurality ofmetaphors to a subset of metaphors, the subset of metaphors comprisingat least one metaphor, wherein the subset of metaphors to be provided atthe user interface module for the observer to input the human feedbackrating is specified by the event record; and wherein receiving from theuser a request for a metaphor in the plurality of metaphors comprisesreceiving from the user a request for a metaphor in the subset ofmetaphors.
 63. A computer readable medium comprising computer programinstructions which when executed implement the method of claim
 1. 64. Acomputer readable medium comprising computer program instructions whichwhen executed implement the method of claim 18